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的登录密码校验

  1. 修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1
让 mysqld 启动时不对密码进行验证
  1. 重启 mysqld 服务:systemctl restart mysqld

  2. 使用 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;
  • 若修改时报错:

    1. 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)
      
    2. 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

  • 9
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值