mysql 5.7的yum安装方法:
【注意】不要直接yum install mysql ,因为默认yum源安装的maridb,不是mysql
去官网找yum
网址:https://dev.mysql.com/downloads/repo/yum/
可以直接通过wget下载:
wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
安装yum源
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
说明:虽然下载的源文件名字为mysql80-community-release-el7-3.noarch.rpm,不用担心,里边其实是包含了我们所要装的版本
安装命令执行完成后,可以查询到新的yum安装包,各种版本的都在其中,查询命令如下:
yum repolist all | grep mysql
可以看到,默认的安装源为mysql80-community版本
我想安装的版本是mysql57-community,怎么办?
使用yum-config-manager --disable mysql80-community来取消mysql80-community的默认安装,然后
使用yum-config-manager --enable mysql57-community来使能mysql57-community成为yum默认安装版本。
执行对应命令后,会发现默认版本已经改为我们要安装的5.7版本了
执行安装命令:
yum install mysql-community-server
yum -y install mysql-devel
启动mysql服务
systemctl restart mysqld.service //重启mysql服务
systemctl status mysqld.service //查看mysql状态
systemctl stop mysqld.service //停止mysql服务
获取临时密码
临时密码存在/var/log/mysqld.log中,使用如下命令查看:
grep "temporary password" /var/log/mysqld.log
登陆mysql
mysql -u root -p
Enter password:
修改mysql密码
第一次连接不能用update语句进行密码更改,因为无法选中表
5.7.6版本以前用户可以使用如下命令:
SET PASSWORD = PASSWORD('root');
5.7.6版本开始的用户可以使用如下命令:
ALTER USER USER() IDENTIFIED BY 'root';
修改密码时报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
1、查看 mysql 初始的密码策略,
SHOW VARIABLES LIKE 'validate_password%';
关于 mysql 密码策略相关参数;
1、validate_password_length 固定密码的总长度;
2、validate_password_dictionary_file 指定密码验证的文件路径;
3、validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4、validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
LOW:只验证长度;
MEDIUM:验证长度、数字、大小写、特殊字符;
STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;
//修改当前密码策略:
set global validate_password_policy=LOW;
//修改密码长度为4:
set global validate_password_length=4;
再查看发现已经改过来了,继续修改密码即可
update语句更改密码
这里要根据版本来执行不同的SQL语句了,因为版本不同,存储密码的字段可能不相同。5.7以前的版本可以用以下语句更新root密码:
update user set password = password('root') where user='root';
如果是高版本,则会提示错误信息
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
高版本里边没有password,是因为已经改成authentication_string字段了,于是重新执行修改字段后的更新语句
update user set authentication_string = password('root') where user='root';
-
grant all privileges on *.* to 'root'@'%' identified by 'root';
-
flush privileges;