Mysql5.7的初始密码忘记后的更改

今日在初始化mysql,在执行下面的命令时,系统没有提示我初始化的密码,导致在bin/mysql --user=root -p 时不知道输入什么密码。

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/u01/mysql
[root@qht131 mysql]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

网上查了一下,可以用以下方法解决:

一、停止mysqld服务

二、编辑配置文件

有的Linux版本是/etc/my.cnf

有的Linux版本是/etc/mysql/mysql.conf.d/mysqld.cnf

在配置文件中添加skip-grant-tables

三、启动mysqld服务

四、执行mysql

进入后台了。

五、修改root密码并刷新配置

注意,user表没有“password”字段了,取代的是“authentication_string”。

mysql> update user set authentication_string=password('123456') where User='root' and Host='localhost';
Query OK, 1 row affected, 1 warning (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

六、再次执行mysql命令需要密码了。

七、去掉skip-grant-tables配置项

因为这一配置项的意思是“跳过权限表的限制,不用密码验证,直接登录”,在生产环境中是绝对不行的。

所以一定别忘记删除这个配置。

八、在配置文件中删除skip-grant-tables后,第一次登入数据库会提示你更改密码,否则其它的命令都不会执行

[root@qht131 mysql]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.21-log

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> set PASSWORD=PASSWORD('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> use mysql;
Database changed

至此,密码修改成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值