我不能用 root 登录,我认为 root 的密码可能被更改。但我也无法更改 root 的密码。
Mysql 版本为 v8.0.16。
我曾经--init-file在 mysqld 启动时指定了 alter sql
alter user 'root'@'localhost' identified by 'mynewpassword'
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
我使用了--skip-grant-tables --user=mysql所以我可以添加一个新用户,我的新用户可以工作。我尝试更改 root,但它再次失败。
alter user 'root'@'localhost' identified by 'mynewpassword'
Run Code Online (Sandbox Code Playgroud)
这是表用户的内容
mysql> alter user 'root'@'localhost' identified by 'mynewpassword';
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法?
小智 47
你可以试试:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
Run Code Online (Sandbox Code Playgroud)
而不是
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';
Run Code Online (Sandbox Code Playgroud)
当您使用以下命令时
mysql> use mysql;
mysql> select user,host from user;
Run Code Online (Sandbox Code Playgroud)
你可以发现root的主机是'%'
mysql> select user, host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35048 次 |
| 最近记录: |