首先,去配置文件填入如下内容(docker的话在 /etc/mysql/
下):
skip-grant-tables
然后重启MySQL,
然后免密码登录 mysql -u root
然后将root的密码置为空:
use mysql;
update user set authentication_string='' where user='root';
- 删除配置文件my.cnf的
skip-grant-tables
- 重启mysql
- 因为已经将root密码置空了,现在就可以直接使用root进行登录
mysql -u root
ALTER user 'root'@'localhost' IDENTIFIED BY '新密码';
- 为了保障,最好还是多创建一个超级特权用户:
CREATE USER '账号'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO '账号'@'%' WITH GRANT OPTION;
- 在用可视化界面的时候,可能会报2058错误,在这一并解决了:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
- 还有开启root用户的远程连接:
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'root';
- 最后刷新权限
flush privileges;