MySQL 5.7在CentOS 7.9系统下的安装(下)——给MySQL设置密码

发布于:2025-05-14 ⋅ 阅读:(17) ⋅ 点赞:(0)

新下载下来的MySQL,由于没有root密码,(1)所以如果我们希望登陆mysql,得给mysql的root账户设置密码,或者另一方面来说,(2)未来如果你忘记root密码了,也能通过这种方式重新设置新的密码

注:以下的操作方法同样适用于最新版的Ubuntu Linux(15及以上版本),细微差异会用文字描述指出。

目录

第一步:首先进入mysql的安全模式:

第二步:通过update的方式先给root设置一个密码:

第三步:用之前设置的密码登陆上mysql系统: 

第四步:做一些用户密码上的配置:

第五步:对mysql进行简单的配置:


第一步:首先进入mysql的安全模式:

进入mysql的配置文件里面,这个配置文件在CentOS下是/etc/my.cnf,Ubuntu是/etc/mysql/my.cnf

# 需要权限,尽量在root用户下操作:
vim /etc/my.cnf

# 找到[mysqld]字段,在这个字段下加入语句:
skip-grant-tables;

# 然后别忘了重启mysqld服务:
systemctl restart mysqld;

产生的效果:安全模式下你就可以以免密码的方式登陆上mysql的root用户啦。

第二步:通过update的方式先给root设置一个密码:

安全模式下,很多和MySQL用户管理相关的命令无法被执行,但是我们仍然可以通过下面的方式来设置密码:

# 设置新密码:
update mysql.user set authentication_string=password('newpassword') where user='root';
# 刷新权限:
flush privileges;

设置好密码之后,进入之前的配置文件,将第一步加入的语句注释掉(最前面加'#')。

然后输入下面的指令,重启mysqld服务:

systemctl restart mysqld;

第三步:用之前设置的密码登陆上mysql系统: 

登陆上这个系统之后,你会发现很多指令之前可以的(安全模式下)你都用不了了,会报错:

这正常吗,答案是正常的,这是因为mysql密码出于安全性考虑,某个密码你用了一段时间后,就不能再用了,该值由default-password-lifetime(密码的默认生命周期)维护。 

通过update语句设定的密码,默认就是用不了的,是过期的。

密码过期的用户仍然可以登陆mysql系统,但是已经无法执行mysql的大部分语句了。为此,我们输入下面的指令:

# 这条指令不行就用下面的那条:
set passward=passward('新密码');
alter user user() identified by '新密码'

然后有些小伙伴在设置新密码时可能会报错:

 这是因为mysql对密码强度默认是有要求的,出现这个错误的时候建议大家设置密码时密码里面小写字母,大写字母,数字,特殊字符啥的都用上。把密码先设置上再说。

第四步:做一些用户密码上的配置:

如果前面三步没有问题,你就可以进入第四步了。首先我们先输入下面这些指令:

#安全强度,默认为中,即1,要求必须包含 数字、符号、⼤⼩写字⺟,⻓度⾄少为8位。如果有需要设置成低(即0)
set global validate_password_policy=0;

#密码最⼩⻓度,默认是8,有需要的小伙伴可进行设置:
set global validate_password_length=1;

#配置信息查看:配置好之后运行这个指令。
SHOW VARIABLES LIKE 'validate_password%';

配置密码的默认生命周期(如果有需要):

打开my.cnf配置文件,在[mysqld]字段下加入下面的指令:

#密码的默认生命周期设置为120天(根据自己的需求来,单位是:天)
default-password-lifetime=120

第五步:对mysql进行简单的配置:

既然都谈到mysql配置的话题了,那么其他的简单配置我们顺便也做了吧🙂:

# 先打开mysql的配置文件:
vim /etc/my.cnf

# 找到[mysqld]字段...在mysqld字段下加入这些配置信息!
# 1.修改mysqld的默认编码方式:
character-set-server=utf8
# 2.设置mysqld的默认端口号:
port=3306
# 3.设置mysqld的默认存储引擎:innodb存储引擎支持事务,所以我们默认用它即可
default-storage-engine=innodb
# 4.设置mysqld的开机自启动(根据需求来,可以不设):
systemctl enable mysqld
systemctl daemon-reload

至此结束!


网站公告

今日签到

点亮在社区的每一天
去签到