安装
下载MySQL官方仓库
这里使用的是MySQL 8.0.17
wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
安装MySQL仓库
yum -y install mysql80-community-release-el7-3.noarch.rpm
安装MySQL
这里安装的是社区版本,也就是免费版本。
yum -y install mysql-community-server
因为有400多m,所以需要花一点时间,耐心等待。
查看版本
[root@iZbp1b5bosh5hqwp4xnk3lZ ~]$ mysql --version
mysql Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)
配置
使用这种两种命令都可以操作mysql
- systemctl {start|stop|restart|status} mysqld
- service mysqld {start|stop|restart|status}
启动
systemctl start mysqld
查看状态
systemctl status mysqld
显示active (running)代表已经启动成功
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 二 2020-02-18 12:38:43 CST; 16min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 14487 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 14564 (mysqld)
Status: "Server is operational"
CGroup: /system.slice/mysqld.service
└─14564 /usr/sbin/mysqld
2月 18 12:38:35 iZbp1b5bosh5hqwp4xnk3lZ systemd[1]: Starting MySQL Server...
2月 18 12:38:43 iZbp1b5bosh5hqwp4xnk3lZ systemd[1]: Started MySQL Server.
默认密码 MySql安装时会把默认密码存在log,在/var/logo/mysqld.log中可以找到 root@localhost后面就是密码
#查找密码
[root@iZbp1b5bosh5hqwp4xnk3lZ ~] grep "password" /var/log/mysqld.log
2019-02-18T04:38:38.941142Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: C2ZF?p.*uju9
登录
登录本机的MySQL可以省略-h
#-u代表用户名 -h代表主机地址 -p代表使用密码
mysql -u root -h localhost -p
在没有修改默认密码的情况操作数据库会出现以下提示,提示需要修改密码才能操作。
mysql> status
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
修改默认密码
#最后记得加上分号
mysql-> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
密码太简单会有以下提示
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
密码必须要8位,而且要同时有数字大小写字母和特殊符号。 成功示例如下:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'A@123456';
Query OK, 0 rows affected (0.01 sec)
重置密码
忘记密码的时候需要重置密码
先停止MySQL
sudo systemctl stop mysql
启动MySQL
这样启动后登录时不需要输入密码
sudo mysqld_safe --skip-grant-tables &
登录并更改密码
#登录,因为不需要密码,所以不加-p
mysql -u root
#修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'A@123456';
#需要刷新权限表(grant-tables)
mysql> FLUSH PRIVILEGES;
退出
mysql> exit;
修改密码安全相关设置
查看MySQL全局安全变量
mysql> Show VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
修改MySQL全局变量
#修改最小长度为5
mysql> set global validate_password.length=5;
Query OK, 0 rows affected (0.00 sec)
默认编码
新版本MySQL已经将默认编码从latin1改为utf-8 mb4,所以我们不需要再更改。 utf-8 mb4相较于utf-8 支持emoji表情符.
打开端口
MySQL默认监听的端口是3306,需要在防火墙中打开。
#开放3306端口
[root@centos7 ~] firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
#重启防火墙,使其生效
[root@centos7 ~] firewall-cmd reload
success
#查看3306端口是否成功打开
[root@centos7 ~] firewall-cmd --query-port=3306/tcp