说明:这个问题可能只是我的个人问题,记录一下吧。当发现这个问题的时候,去网上搜素了一下,搜到的文章基本上都是通过在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端口就可以了。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐