一、问题背景:
服务器上使用Docker部署的Mysql远程连接时报错

二、解决办法
修改用户权限表(适用于 MySQL 5.7 及以上版本)
- 进入 MySQL 容器内部。可以使用docker exec -it <mysql - container - name> bash命令(假设<mysql - container - name>是你的 MySQL 容器名称)。【不是docker部署的可以直接跳到第二部】
- 登录到 MySQL 数据库。在容器内部,使用mysql -u root -p命令,然后输入密码登录。
- SHOW DATABASES;查看所有数据库;use mysql,进入mysql数据库;
SHOW DATABASES;
use mysql

- 查询用户的权限信息。使用SELECT user, host FROM user;命令可以查看所有用户及其允许连接的主机信息。
SELECT user, host FROM user;

这是允许连接的ip列表

- 更新用户的权限。
如果要允许来自117.129.66.19的单个ip的连接,可以使用以下命令:
GRANT ALL PRIVILEGES ON . TO ‘your_user’@‘117.129.66.19’ IDENTIFIED BY ‘your_password’ WITH GRANT OPTION;(将your_user替换为实际的用户名,your_password替换为用户密码)。
或者直接允许所有IP访问,GRANT ALL PRIVILEGES ON . TO ‘用户名’@‘%’ IDENTIFIED BY ‘密码’;
#允许单个ip访问
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'117.129.66.19' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
#允许所有ip访问
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码';

- 刷新权限。使用FLUSH PRIVILEGES;命令,使权限设置生效。
FLUSH PRIVILEGES;
631

被折叠的 条评论
为什么被折叠?



