安装mysql 5.7服务
1、删干净旧的mysql服务后,增加mysql5.7官方镜像源
//查看旧的mysql服务
rpm -qa | grep mysql
//卸载它
rpm -e --nodeps mysql*
//增加mysql5.7官方镜像源
vim /etc/yum.repos.d/mysql-community.repo
[mysql-community]
name=MySQL 5.7 Community Server
#baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/ //可更改为5.6版本
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
//更新一下yum缓存
yum makecache
2、安装并开启服务
yum -y install mysql-community-server
//开启服务并查看
systemctl start mysqld
systemctl status mysqld
mysql5.7的初始密码是随机生成的,可以到/var/log/mysqld.log目录下,使用 grep “temporary password” /var/log/mysqld.log 读出来
3、mysql更改密码的方式,因为版本问题列举三种方法
---修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpasswd';
UPDATE user SET authentication_string=PASSWORD('newpasswd') where USER='root';
UPDATE user SET Password=PASSWORD('newpasswd') where USER='root'; //旧版本
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpasswd');
---刷新权限
FLUSH PRIVILEGES;
报错问题
1、mysql 初始化使用的是临时密码,修改密码时,由于临时密码比较简单,就出现了不符合密码策略的问题,报错是:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
原因是因为Mysql增加了密码强度验证插件:validate_password
---查看 mysql 初始的密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
---设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW
set global validate_password_policy=LOW;
或者详细
mysql> set global validate_password_length=6; //设置固定密码的总长度
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_policy=0; //设置密码的强度验证等级,默认为 MEDIUM
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_mixed_case_count=0; //设置至少要包含大/小写字母的总个数
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_number_count=3; //设置至少要包含阿拉伯数字的个数
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_special_char_count=0; //设置至少要包含特殊字符的个数;
Query OK, 0 rows affected (0.00 sec)
2、当外部无法连接数据库时,开启MySQL远程访问权限,允许远程连接
---查看所有用户的访问限制
select host,user,password from user; //旧版本
select user,host,authentication_string from user;
use mysql;
---第一种方法:更新用户访问权限
update user set host='%' where user='root';
---第二种方法:授权所有权限、所有访问给root
grant all privileges on *.* to root@'%' identified by "password";
---刷新权限
FLUSH PRIVILEGES;