MySQL的密码放置在log日志文件里
初始密码放置在/var/log/mysqld.log文件里 (这个要在编译安装的时候写入配置文件)
可在命令行输入如下语句查询密码
grep 'temporary password' /var/log/mysqld.log
(注:密码为冒号后面的所有字符!)
MySQL初安装设置密码策略
1. 使用默认密码登录
# mysql -uroot -p
2. 修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'XunXun@123';
1. 直接使用默认密码修改
# grep 'password' /var/log/mysqld.log # mysqladmin -uroot -p'es,W;ya(K1Th' password 'XunXun@123'
解决不符合密码复杂性要求
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
1. 修改密码策略
musql> set global validate_password_policy=0;
2. 修改密码长度
mysql> set global validate_password_length=1;
3. 执行修改密码成功
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
不推荐使用,数据库的数据安全很重要!!!
MySQL密码破解
root密码恢复--启动时直接跳过权限表,设置密码
[root@node01 ~]# vim /etc/my.cnf
#在 [mysqld] 后添加以下内容
skip-grant-tables
systemctl restart mysqld #重启mysql服务
mysql -uroot -p #输入密码时直接回车就可以进来了
#登录数据库时就没有密码了,就可以重新设置密码了
use mysql;
mysql> update mysql.user set authentication_string=password("XunXun@123456") where user="root";
mysql> flush privileges;
完成后退出mysql把 /etc/my.cnf 中那行 “skip-grant-tables” 去掉,再重启mysql就完成了
补充扩展内容
mysql> update mysql.user set authentication_string=password('123456') where user='root' and host='localhost'; mysql> flush privileges;
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='root' AND host='localhost';这个命令用于更新 MySQL 中用户表(mysql.user)中的密码字段(authentication_string)。
它将用户 root 在主机 localhost 上的密码更改为 “123456”。
通过使用 PASSWORD 函数,密码会被加密存储。
注意:这是在较旧的 MySQL 版本中使用的语法。在新的 MySQL 版本中,使用 ALTER USER 命令来修改用户密码。
mysql> flush privileges; mysql> ALTER USER root@localhost identified by '123456';
FLUSH PRIVILEGES; 是一个 MySQL 命令,用于重新加载以前进行的授权更改,确保当前正在运行的 MySQL 服务器使用最新的权限配置。当您进行了对权限进行更改的操作后(例如创建、修改或删除用户、授权等操作),您需要执行 FLUSH PRIVILEGES; 命令来刷新权限以使更改生效。
ALTER USER root@localhost IDENTIFIED BY '123456'; 是一个用于修改 MySQL 用户(root@localhost)密码的命令。此命令将用户 root 在本地主机上的密码更改为"123456"。通过使用ALTER USER命令和IDENTIFIED BY子句,您可以更改用户的密码。
当您执行这个命令后,MySQL 将会更新用户的密码,以便使用新的密码进行身份验证。
请记住,为了保证数据库的安全性,请使用更强大的和更复杂的密码,并定期更换密码。