说明:这个问题可能只是我的个人问题,记录一下吧。当发现这个问题的时候,去网上搜素了一下,搜到的文章基本上都是通过在mysql中设置允许远程访问解决的,然后我也跟着尝试了一下,问题并没有解决。后面就乱七八糟的折腾了一天,最终通过在云服务器的安全组中开放3306端口得以解决。
一、问题
二、开放mysql允许远程访问
1、保证docker容器中的mysql处于打开状态
2、进入容器内部
docker exec -it mysql /bin/bash
3、登录mysql
mysql -uroot -p
4、给root用户分配远程访问权限
GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;
(注意,后面的分号不可省)
5、刷新生效
FLUSH PRIVILEGES;
三、开放云服务器的3306端口
四、成功!
五、注意事项
1、尝试一下关闭linux虚拟机中的防火墙或者开放3306端口
你可能用到的指令
# 查看防火墙状态
sudo systemctl status firewalld# 临时关闭防火墙
sudo systemctl stop firewalld# 永久关闭防火墙
sudo systemctl disable firewalld# 开放3306端口
sudo firewall-cmd --permanent --add-port=3306/tcp# 确认端口是否开放
sudo firewall-cmd --list-all
2、如果是创建了新的安全组记得要添加实例。
(我就是创建了新的安全组,然后忘记添加实例了,又浪费大量时间)
说明:其实在原有的安全组中开放3306端口就可以了。