解决方案

关闭服务

service mysql stop

修改配置文件跳过grant-tables

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
---
在mysqld下面写 skip-grant-tables

[mysqld]
skip-grant-tables

启动服务登录

service mysql start

修改密码:

进入mysql数据库,查看user和host

mysql> use mysql;
mysql> select user,host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| admin            | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| jancoyan         | localhost |
+------------------+-----------+
  • 注意我的root,host是’%’,这个一定要对应起来

这样改:

-- mysql 8.0
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';

mysql 8.x 以下要这样改:
UPDATE user SET Password=PASSWORD('你的密码') where USER='root';

如果root对应的host为localhost,就要写成 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';

如果报错,就刷新一下权限flush privileges, 然后再改。

改完之后退出

停掉服务

service mysql stop

删除 /etc/mysql/mysql.conf.d/mysqld.cnf 中的 skip-grant-tables

启动服务

service mysql start

重新用新的密码登陆,成功。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐