修改密码及登录
初始密码
MySQL第一次启动后会创建超级管理员账号root@localhost,初始密码存储在日志文件中:
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log
2020-12-06T07:32:41.399112Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Nd<-p!Fxt6A8
root@localhost: 后面的是密码
修改默认密码
# 先进行登录
[root@localhost ~]# mysql -uroot -p
Enter password:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
#密码太弱
解决方法如下:
- 使用复杂密码,MySQL默认的密码策略是要包含数字、字母及特殊字符;
- 如果只是测试用,不想用那么复杂的密码,可以修改默认策略,即validate_password_policy(以及validate_password_length等相关参数),使其支持简单密码的设定,具体方法可以参考:设置密码策略;
- 修改配置文件/etc/my.cnf,添加validate_password=OFF,保存并重启MySQL
重置密码
上述会存在初始密码输入不正确的问题 或者忘记了密码 只能重置密码
解决方法:
1.检查mysql服务是否启动,如果启动,关闭mysql服务
//查看mysql服务状态
ps -ef | grep -i mysql
//关闭服务
service mysql stop
2.修改mysql的配置文件“my.conf”
my.cnf配置文件的位置,一般在/etc/my.cnf,有些版本在/etc/mysql/my.cnf
在配置文件中,增加1行代码
[mysqld]
skip-grant-tables
作用是登录mysql的时候跳过密码验证
然后启动mysql服务,并进入mysql
service mysqld start
mysql -u root
3. 修改密码
连接mysql这个数据库,修改用户密码
mysql> use mysql;
mysql> update mysql.user set authentication_string=password('root_password') where user='root';
mysql> flush privileges;
mysql> exit
CentOS下应该这样操作
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '这是密码';
mysql> flush privileges;
mysql> exit
4. 重启mysql服务
先将之前加在配置文件里面的代码注释或删除掉,然后重启mysql服务,就可以使用刚刚设置的密码登录了。
service mysql stop # 停止
service mysql start # 启动
mysql -u root -p

本文介绍了如何查找和修改MySQL的初始密码,包括解决密码策略问题和在忘记密码时的重置步骤。通过查看日志获取初始密码,使用ALTER USER命令更新密码,以及在无法登录时通过修改配置文件skip-grant-tables跳过权限检查来重置密码。此外,还提到了调整密码策略以允许使用简单密码的方法。
370

被折叠的 条评论
为什么被折叠?



