docker mysql8安装后无法远程链接时修改root密码方法

安装了一个docker mysql,里面是mysql8版本,要远程链接docker的数据库,先修改密码,我选择修改root密码(全文用123456),拿到最高权限....

按网上很多直接执行这个可以修改:

update user set authentication_string= PASSWORD("123456") where `user` = "root";

自己操作实际上会报错

EXPLAIN update user set authentication_string= PASSWORD("123456") where `user` = "root"

> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '("123456") where `user` = "root"' at line 1


解决方式

1.先设置密码为空(先进入mysql,跳过密码过程略过(最后有说明在哪里加),下面是修改密码过程)

update user set authentication_string=’’ where user=‘root’;

2.刷新授权

flush privileges;

3.设置root密码(123456改成你自己的密码)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

4.再次刷新授权

flush privileges;

如果设置过跳过密码请求删除添加的跳过,现在可以用密码登录了。

在my.cnf(/etc/my.cnf根据自己系统查找,如果是mysql docker,可以修改/etc/mysql/conf.d/docker.cnf这个文件)

#跳过密码验证(设置密码后去掉)

skip-grant-tables


评论/留言