新安装的 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!