centos mysql5.7安装
阅读原文时间:2023年07月08日阅读:1

1. 安装

1 wget http://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
2 rpm -ivh mysql57-community-release-el7-11.noarch.rpm
3 yum install -y mysql-community-server

2. 验证安装

1 mysqladmin --version

mysqladmin Ver 8.42 Distrib 5.7.27, for Linux on x86_64

3. 启动mysql

1 systemctl start mysqld
2 systemctl enable mysqld #设为开机启动

  查看状态

1 systemctl status mysqld

4. 首次登陆

  获取初始密码

1 grep "password" /var/log/mysqld.log

2019-10-09T05:38:13.539819Z 1 [Note] A temporary password is generated for root@localhost: yUFwLSCMW5!q

  登陆

1 mysql -uroot -p
Enter password:     #输入密码即可登陆

5. 修改密码

1 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';    #修改密码为"root123"

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements    
#密码不符合策略

  查看密码策略

1 mysql> SHOW VARIABLES LIKE 'validate_password%';

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.    
#先改密码才行

  修改密码(长度8位以上,包含大小写,特殊字符,)

1 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Password_123';

Query OK, 0 rows affected (0.00 sec)

  再查看(默认)密码策略

1 mysql> SHOW VARIABLES LIKE 'validate_password%';

+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |    #OFF密码可以等于用户名,ON密码不能等于用户名
| validate_password_dictionary_file | |    #密码策略文件(检查强度为STRONG时需要)
| 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.01 sec)
注:
#密码最小长度为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
#检查强度等级:
  0或LOW:只检查长度;
  1或MEDIUM:检查长度,数字,大小写,特殊字符;
  2或STRONG:检查长度,数字,大小写,特殊字符和文件

  修改密码策略

1 mysql> SET GLOBAL validate_password_length=4;     #修改密码最小长度为4
2 mysql> SET GLOBAL validate_password_policy=LOW;    #修改检查强度为LOW
3 mysql> FLUSH PRIVILEGES;              

  查看当前密码策略

1 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)

  修改密码为'root123'

1 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
2 mysql> FLUSH PRIVILEGES;

6.设置远程登录

1 mysql> use mysql
2 mysql> SELECT user,host FROM user WHERE user='root';

+------+-----------+
| user | host |
+------+-----------+
| root | localhost |    #只允许本机登录
+------+-----------+
1 row in set (0.00 sec)

1 mysql> UPDATE user SET host='%' WHERE user='root';
2 mysql> SELECT user,host FROM user WHERE user='root';

+------+------+
| user | host |
+------+------+
| root | % |    
+------+------+
1 row in set (0.00 sec)

1 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123' WITH GRANT OPTION;     #授权
2 mysql> FLUSH PRIVILEGES;

  远程连不上可以尝试关闭防火墙。