一、问题描述
1.腾讯云服务器上docker方式安装完mysql后,windows电脑上heidisql客户端不用密码就能连接
2.修改docker里mysql密码,heidisql客户端就连接不上了
二、问题排查
1.不用密码就能连接是因为mysql的配置文件中有设置skip-grant-tables 参数
(1)docker inspects mysql 查看挂在目录
(2)进入挂载目录找到my.conf文件
(3)vim 进入文件删除skip-grant-tables参数
[mysqld]
skip-name-resolve
skip-grant-tables
(4)docker restart mysql重启后就需要密码登录了
2.修改密码sql
USE mysql;
UPDATE user SET authentication_string = PASSWORD('123456') WHERE User = 'root';
FLUSH PRIVILEGES;
3.windows客户端连接不上原因是root用户配置的地址是localhost
1.root用户的地址localhost只能在docker容器内的mysql所在的小服务环境正常连接
2.进入user表修改root用户的地址为%即可
附件:
skip-grant-tables:启用此选项会使 MySQL 在启动时跳过权限表的加载,这通常用于在忘记密码或需要进行权限修复等情况下暂时绕过权限验证。但这是一种不安全的设置,仅应在必要时临时使用,并在完成相关操作后及时恢复正常设置。