mysql修改密码的那些事儿——首次设置密码的三招

新安装的 mysql 如何设置密码?

如何设置mysql密码?如果我们可以通过一条命令就能改变密码,那mysql的安全性就太低了。

思路:
mysql的用户、密码以及其他关键信息都在名为“mysql”的数据库中储存,常用的是mysql.user 。要设置密码,就是要进入mysql数据库中,修改表名为user表中的密码信息。
没有密码,如何进入mysql就成了本问题的关键,这就来好好讲讲!

仔细想想,设置密码的方法还挺多,下面就说这常用的三种方法!

一、特殊命令法

方法概述:
首先,进入设置mysql环境选项的状态中,该状态可以允许不用密码直接修改用户身份的相关信息;
其次,我们在设置mysql环境选项状态中,将root用户身份认证设置为空,结束这一状态后,也可以免密登录。直接跳过登录密码,直接免密登录,然后进入mysql后修改密码。
最后,正常状态下,免密进入mysql中,设置密码,即完成了所有操作。

应该是比较简单的方法吧!

1、设置免密登录

(1)先关闭mysql,再设置mysql环境选项,设置为跳过用户授权,最后启动mysql。

systemctl stop mysqld.service

systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

systemctl start mysqld.service

(2)经过步骤(1)之后,我们就可以免密进入mysql了

mysql -uroot

(3)进入mysql后,将root用户的身份认证设置为空,退出。

update mysql.user set authentication_string='' where user='root';

quit

(4)完成以上设置后,结束mysql环境选项设置状态。处于环境设置状态下,智能做用户身份设置的事情,其余命令无法使用。

systemctl unset-environment MYSQLD_OPTS

systemctl restart mysqld

现在已经将root用户的身份设置为空,所以处于一般状态时,我们也可以免密登录。

2、修改密码

(1)免密进入mysql

mysql -uroot

(2)在mysql中,设置密码。由于默认要求密码强度等级是中等,所以密码要求大小写字母+数字+特殊符号,这个是可以修改的,详情看我的本系列文章“突破密码限制”

ALTER user 'root'@'localhost' identified by "Ff@123456";

UPDATE mysql.user SET password_expired='N';

UPDATE mysql.user SET host='%' where user='root';

flush privileges;

quit

3、小结

本方法的关键是进入mysql环境选项状态中,可以免密登录,只要能进mysql,什么都简单了!

二、修改配置文件法

1、修改my.cnf文件

(1)关闭msyql

systemctl stop msyqld.service

(2)修改my.cnf 文件
my.cnf文件是mysql的核心文件,记录并规定着msyql的安装路径、msyql数据文件的存放路径以及日志路径这些最基础也是最核心的信息。一般存放路径为 /etc/my.cnf

vi /etc/my.cnf

(3)增加下面这三句话于配置文件中,添加后就可以不用密码登录了。

#Disabling symbolic-links is recommended to prevent assorted security risks
skip-grant-tables     #添加这句话,这时候登入mysql就不需要密码
symbolic-links=0

(4)启动msyql

systemctl start msyqld.service

2、修改密码

(1)免密进入mysql,输入如下命令后,直接回车即可,不用输入密码。

mysql -uroot -p

(2)在mysql中,设置密码。由于默认要求密码强度等级是中等,所以密码要求大小写字母+数字+特殊符号,这个是可以修改的,详情看我的本系列文章“突破密码限制”

ALTER user 'root'@'localhost' identified by "Ff@123456";

UPDATE mysql.user SET password_expired='N';

UPDATE mysql.user SET host='%' where user='root';

flush privileges;

quit

3、删除增加的免密语句

(1)关闭msyql

systemctl stop msyqld.service

(2)修改my.cnf 文件

vi /etc/my.cnf

(3)删除增加的三句话。

#Disabling symbolic-links is recommended to prevent assorted security risks
skip-grant-tables     #添加这句话,这时候登入mysql就不需要密码
symbolic-links=0

(4)启动msyql

systemctl start msyqld.service

4、小结

增加配置文件,可以获得免密的权限,进入mysql后,可以自由发挥了。修改完密码后,删除增加的语句即可。

三、临时密码登录法

(1)找到mysql日志文件,使用抓取临时密码的命令

grep 'temporary password' /var/log/mysqld.log

(2)读取临时密码。因为按照mysql过程中,会显示临时密码,也会记录在日志文件中,所以可以直接从日志文件中获取,这里的临时密码是“Ix2M&LQd2ldL”

2019-07-31T02:22:03.425958Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Ix2M&LQd2ldL

2、修改密码

(1)使用临时密码进入mysql,输入如下命令后,直接回车即可。

mysql -uroot -pIx2M&LQd2ldL

(2)在mysql中,设置密码。由于默认要求密码强度等级是中等,所以密码要求大小写字母+数字+特殊符号,这个是可以修改的,详情看我的本系列文章“突破密码限制”

ALTER user 'root'@'localhost' identified by "Ff@123456";

UPDATE mysql.user SET password_expired='N';

UPDATE mysql.user SET host='%' where user='root';

flush privileges;

quit

3、小结

本方法是最简单的,因为临时密码很好获取,一条命令就能解决的事情!

四、总结

读书破万卷,
试验做万遍。
这些软件的安装,是很需要实际操作能力的,报错必不可少,也避免不了,我们能做的是充实自己的知识储备,才能从容地应对问题。
用珠宝装饰自己,不如用知识充实自己。fighting!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值