Navicat连接不上虚拟机中linux的dockers创建的mysql

说明:这个问题可能只是我的个人问题,记录一下吧。当发现这个问题的时候,去网上搜素了一下,搜到的文章基本上都是通过在mysql中设置允许远程访问解决的,然后我也跟着尝试了一下,问题并没有解决。后面就乱七八糟的折腾了一天,最终通过在云服务器的安全组中开放3306端口得以解决。

一、问题

Navicat连接不上虚拟机中linux的dockers创建的mysql_第1张图片

二、开放mysql允许远程访问

1、保证docker容器中的mysql处于打开状态

2、进入容器内部

docker exec -it mysql /bin/bash

3、登录mysql

mysql -uroot -p

Navicat连接不上虚拟机中linux的dockers创建的mysql_第2张图片

4、给root用户分配远程访问权限

GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;

(注意,后面的分号不可省)Navicat连接不上虚拟机中linux的dockers创建的mysql_第3张图片

5、刷新生效

FLUSH PRIVILEGES;

Navicat连接不上虚拟机中linux的dockers创建的mysql_第4张图片

三、开放云服务器的3306端口

Navicat连接不上虚拟机中linux的dockers创建的mysql_第5张图片

四、成功!

Navicat连接不上虚拟机中linux的dockers创建的mysql_第6张图片

五、注意事项

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、如果是创建了新的安全组记得要添加实例。

(我就是创建了新的安全组,然后忘记添加实例了,又浪费大量时间)

Navicat连接不上虚拟机中linux的dockers创建的mysql_第7张图片

Navicat连接不上虚拟机中linux的dockers创建的mysql_第8张图片

Navicat连接不上虚拟机中linux的dockers创建的mysql_第9张图片

Navicat连接不上虚拟机中linux的dockers创建的mysql_第10张图片

Navicat连接不上虚拟机中linux的dockers创建的mysql_第11张图片

说明:其实在原有的安全组中开放3306端口就可以了。

你可能感兴趣的:(linux,运维,服务器)