此问题已在此处有答案:
MySQL: How to reset or change the MySQL root password?(37答案)
4天前关闭。
我知道这个主题在很多线程中被讨论,但我仍然找不到我的案例的解决方案。我在centOS 8.0中使用mysql 8.0.24并试图重置我的root密码。这是我的用户表。
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
我首先使用下面的命令启动mysql docs。
`ALTER USER 'root'@'localhost' IDENTIFIED BY '111';`
但我得到了错误,ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'
和我尝试与update mysql.user set authentication_string='111' where user='root';
我得到了Query OK, 1 row affected (0.00 sec)
。然后我就做了
FLUSH PRIVILEGES;
我检查了table
mysql> SELECT user,authentication_string FROM mysql.user;
+------------------+------------------------------------------------------------------------+
| user | authentication_string |
+------------------+------------------------------------------------------------------------+
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root | 111 |
然后我杀死安全模式,并开始在正常模式与
systemctl start mysqld
mysql -u root -h localhost -p
当我输入密码111时,它说
ERROR 1045 (28000): Access denied for user 'root'@'localhost'
我真的不知道为什么会这样。首先,官方文档语法不适用于我的版本。我使用了update命令。什么都不管用。
2条答案
按热度按时间xuo3flqw1#
将root用户的身份验证方法更改为使用密码的方法
然后尝试使用密码登录。
您可以将root用户的身份验证方法改回默认值
luaexgnf2#
我只是用另一种方法解决了。谢谢大家回答我的问题。以防有人追踪到这里。我想向他们提供一些想法。我所做的是根据这个线程的最高分答案cant-login-as-mysql-user-root-from-normal-user-account-in-ubuntu-16-04将root用户置于安全模式。下面的命令为我工作。有些人可能不知道什么是标识与caching_sha2_password。您可以选择“插入”用户表。它告诉你。
然后,作为其他线程,我可以登录我的新密码作为root用户。希望这对你有帮助。