Linux yum安装指定版本的MySQL(如MySQL5.7)

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';

  1. grant all privileges on *.* to 'root'@'%' identified by 'root';

  2. flush privileges;

  • 10
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值