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)
-
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15257.html