安装mysql的yum源
到mysql官方yum源下载rpm安装文件,
shell> wget https://repo.mysql.com//mysql80-community-release-el7-2.noarch.rpm
之后安装该yum源的rpm
shell> sudo rpm -Uvh mysql80-community-release-el7-2.noarch.rpm
选择安装版本
查看下yum源里的mysql版本,注意默认是安装最新版本的
[chen@dbserver ~]$ yum repolist all | grep mysql
注意当前待安装的版本是最后一栏显示enabled:的版本,默认是8.0版本。需要修改版本的话通过yum-config-manager修改
[chen@dbserver ~]$ sudo yum-config-manager --disable mysql80-community
[chen@dbserver ~]$ sudo yum-config-manager --enable mysql57-community
如上面命令,关闭8.0版本,打开5.7版本,在检查下,发现mysql57-community已经是enabled:状态。
[chen@dbserver ~]$ yum repolist enabled | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community 95
mysql-tools-community/x86_64 MySQL Tools Community 84
mysql57-community/x86_64 MySQL 5.7 Community Server 327
安装mysql
接下来直接用yum安装
[chen@dbserver ~]$ sudo yum install mysql-community-server
系统会选择安装刚才选择的版本进行安装,包括server、client、libs和common。
Public key for mysql-community-common-5.7.25-1.el7.x86_64.rpm is not installed
(1/5): mysql-community-common-5.7.25-1.el7.x86_64.rpm | 274 kB 00:00:00
(2/5): mysql-community-libs-5.7.25-1.el7.x86_64.rpm | 2.2 MB 00:00:04
(3/5): mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm | 2.0 MB 00:00:01
(4/5): mysql-community-client-5.7.25-1.el7.x86_64.rpm | 24 MB 00:00:13
(5/5): mysql-community-server-5.7.25-1.el7.x86_64.rpm | 165 MB 00:00:18
--------------------------------------------------------------------------------------------------------
Total 7.7 MB/s | 194 MB 00:00:25
启动mysql服务
在centos 7 版本中使用 systemctl工具管理服务,
- 启动
[chen@dbserver ~]$ sudo systemctl start mysqld.service
- 查看状态
[chen@dbserver ~]$ sudo systemctl status mysqld.service
- 停止
[chen@dbserver ~]$ sudo systemctl status mysqld.service
- 设为开机启动
[chen@dbserver ~]$ sudo systemctl enable mysqld.service
修改密码
查看系统安装时为root生成的默认密码
[chen@dbserver ~]$ sudo grep 'temporary password' /var/log/mysqld.log
2019-03-22T08:29:48.021611Z 1 [Note] A temporary password is generated for root@localhost: 5lQwE4zk&9wg
用临时密码登录后修改密码
[chen@dbserver ~]$ mysql -u root -p
[chen@dbserver ~]$ ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
修改密码策略
如果提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,说明密码过于简单无法修改,必须要修改密码策略。主要是修改强度和长度要求。
- 输入语句 “ SHOW VARIABLES LIKE ‘validate_password%’; ” 进行查看,
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| 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 |
+--------------------------------------+--------+
7 rows in set (0.00 sec)
- 设置密码的验证强度等级为LOW
mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
- 设置密码长度要求
mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 4 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
现在可以修改简单密码了。
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
密码参数说明
- validate_password_length 固定密码的总长度;
- validate_password_dictionary_file 指定密码验证的文件路径;
- validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
- validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
- validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件; - validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;
允许远程连接
root用户默认不能从远程ip连接,否则报错:1130-host XXX. is not allowed to connect to this MySql server。需要修改用户表或授权
- 方法1: 修改user表
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql >FLUSH PRIVILEGES;
- 方法2: 授权法
例如,你想root使用mypassword从任何主机连接到mysql服务器的话。
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
PS: 别忘记最后的FLUSH PRIVILEGES; 刷新先前的修改。