需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。
目录
5、可选设置:开机自启动MySQL(云服务器没事一般不会关机)
一、MySQL环境的安装
1、MySQL环境安装
#打印当前机器的Linux版本[root@VM-4-11-centos ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) #在官网下载和Linux版本对应的rpm包http://repo.mysql.com/#安装rpm包rpm -ivh mysql57-community-release-el7.rpm#查看Linux的yum源是否被安装好[root@VM-4-11-centos MySQL]# ls /etc/yum.repos.d/ -ltotal 24-rw-r--r-- 1 root root 1838 Apr 27 2017 mysql-community.repo-rw-r--r-- 1 root root 1885 Apr 27 2017 mysql-community-source.repo#使用yum安装mysqlyum install -y mysql-community-server#查看MySQL是否安装成功[root@VM-4-11-centos MySQL]# ls /etc/my.cnf #查看MySQL配置文件是否存在/etc/my.cnf[root@VM-4-11-centos MySQL]# which mysqld #查看MySQL服务端是否存在/sbin/mysqld[root@VM-4-11-centos MySQL]# which mysql #查看MySQL客户端是否存在/bin/mysql#启动MySQL服务器systemctl start mysqld
2、安装MySQL出现的问题
安装遇到秘钥过期的问题:Failing package is: mysql-community-common-5.7.42-1.el7.x86_64GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql解决⽅案:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
3、登录MySQl
3.1方案一
#获取临时密码[root@VM-4-11-centos MySQL]# sudo grep 'temporary password' /var/log/mysqld.log2023-06-07T02:58:34.085200Z 1 [Note] A temporary password is generated for root@localhost: kQs***7OrS_M#使用临时密码登录[root@VM-4-11-centos MySQL]# mysql -h 127.0.0.1 -P 3306 -u root -pEnter password: #退出MySQl\q
- -h:指定要连接的 MySQL 数据库所在的主机名或 IP 地址。在这里,127.0.0.1 表示要连接的主机为本地主机,即连接本机上的 MySQL 数据库。不指明-h,默认连上本地服务器搭建的MySQL。
- -P:指定要连接的 MySQL 数据库所在的端口号。在这里,3306 表示 MySQL 数据库的默认端口号。不指明-P,默认使用配置文件指明的端口号连接MySQL。
- -u:指定要连接 MySQL 数据库的用户名。在这里,root 表示使用 root 用户名连接 MySQL 数据库。
- -p:表示连接 MySQL 数据库时需要输入密码。在这里,-p 后面没有指定密码,所以会提示输入密码。
当你输入完整的命令后,按下回车键,会提示输入密码,输入正确的密码后,就可以连接到 MySQL 数据库了。
3.2方案二
#打开MySQl配置文件vim /etc/my.cnf#尾行加入此句skip-grant-tables#重启MySQl服务systemctl restart mysqld#直接登录mysql -uroot
4、修改MySQL配置文件
#vim打开配置文件vim /etc/my.cnf#新增如下字段port=3306character-set-server=utf8default-storage-engine=innodb#重启MySQl服务,生效配置systemctl restart mysqld
5、可选设置:开机自启动MySQL(云服务器没事一般不会关机)
#开启开机自启动systemctl enable mysqldsystemctl daemon-reload
二、MySQL数据库基础
1、一些概念
MySQL本质是基于C(mysql)S(mysqld)模式的一种网络服务。
mysqld:它是数据库的服务器端(这是一个守护进程)
mysql:它是数据库的客户端
数据库是在磁盘或内存中存储的结构化数据文件。
数据库服务:mysqld
2、基本使用
2.1显示当前 MySQL 实例中所有的数据库列表
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys |+--------------------+4 rows in set (0.02 sec)
数据库存放于/var/lib/mysql目录下。
2.2创建数据库
mysql> create database helloworld;Query OK, 1 row affected (0.00 sec)
创建数据库,本质上就是在创建Linux下创建一个目录。
2.3使用数据库
mysql> use helloworld;Database changed
2.4创建数据库表
mysql> create table students( -> name varchar(32), -> age int, -> gender varchar(2) -> );Query OK, 0 rows affected (0.26 sec)
在数据库中建立表,本质上就是在Linux中创建对应的文件。
2.5在表中插入数据
mysql> insert into students (name, age, gender) values ('张三',22,'男');Query OK, 1 row affected (0.05 sec)
2.6在表中查询数据
mysql> select* from students;+--------+------+--------+| name | age | gender |+--------+------+--------+| 张三 | 22 | 男 || 王五 | 23 | 女 || 王五 | 23 | 女 |+--------+------+--------+3 rows in set (0.01 sec)
3、SQL的分类
DDL【data definition language】:数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter
DML【data manipulation language】:数据操纵语言,用来对数据进行操作
代表指令: insert,delete,update
DML中又单独分了一个DQL:数据查询语言,代表指令: select
DCL【Data Control Language】:数据控制语言,主要负责权限管理和事务
代表指令: grant,revoke,commit
4、存储引擎
存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL的核心就是插件式存储引擎,支持多种存储引擎。
#查看MySQL的存储引擎mysql> show engines;+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| Engine | Support | Comment| Transactions | XA | Savepoints |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES || MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO || MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO || BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO || MyISAM | YES | MyISAM storage engine | NO | NO | NO || CSV | YES | CSV storage engine | NO | NO | NO || ARCHIVE | YES | Archive storage engine | NO | NO | NO || PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO || FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+9 rows in set (0.00 sec)