MySQL默认root密码查看与修改指南
·
MySQL默认root密码查看与修改
1. 查看默认密码
MySQL 5.7 在初始安装后(CentOS7 操作系统)会生成随机初始密码,并在 /var/log/mysqld.log 中有记录,可以通过 cat 命令查看,找 password 关键字
[root@stg-mysql mysqldata]# sudo grep 'temporary password' /var/log/mysqld.log
2021-01-22T06:58:56.317416Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Xq93pu;e&dO9
2. 如果使用默认密码登录不了,那么可以先关闭MySQL的登录密码校验
- 修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1
让 mysqld 启动时不对密码进行验证
-
重启 mysqld 服务:systemctl restart mysqld
-
使用 root 用户登录到 mysql:mysql -u root
3. 修改/设置默认的root密码
mysql -u root -p
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 123456是密码,root 是用户名
flush privileges;
quit;
-
若修改时报错:
-
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
解决方案:
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
-
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
原因是因为密码设置的过于简单会报错,MySQL有密码设置的规范,具体是与validate_password_policy的值有关,下图表明该值规则
解决方案:先查看密码规则,然后调整你的密码
mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +--------------------------------------+--------+ 7 rows in set (0.01 sec)
-
2023 更新- mysql 8.x 的变动
对于MySQL 8.0.34版本,skip-grant-tables参数的行为发生了变化。在此版本中,skip-grant-tables参数不再接受任何值,只需将其添加到my.cnf文件中即可。因此,您可以按照以下步骤进行免密登录的设置:
打开my.cnf文件:
sudo vi /etc/my.cnf
在文件的[mysqld]部分添加以下行:
skip-grant-tables
保存并关闭文件。
重启MySQL服务:
sudo systemctl restart mysqld
更多推荐
已为社区贡献5条内容
所有评论(0)