远程连接到 Google Compute Engine VM 上的 MySQL
Remotely connect to MySQL on Google Compute Engine VM
我的问题与 类似,但由于我没有足够的声誉来发表评论,而且该问题的答案也无济于事,我开始提出一个新问题。
我有一个带有 LEMP 的 GCE VM 实例 MySQL Ver 15.1 Distrib 10.1.18-MariaDB,我正在尝试从我的本地机器远程连接到它。
我已经尝试了我之前提到的问题 link 中的所有建议。
这是我的防火墙配置:
在 my.cnf 文件中我有:
bind-address = 0.0.0.0
关于 MySQL 用户权限我有以下:
当我尝试与 wkreport 用户远程连接时,我得到以下结果:
我的问题是,我错过了什么?!
我刚刚找到了问题的解决方案,
特别感谢@Slava 为我指明了方向,毕竟它是 iptables。
因此,我在尝试远程连接时一直收到 "MySQL connection refused" 消息,因此我搜索了一种查看 TCP 连接日志的方法,并找到了 tcpdump
命令。
通过 运行 sudo tcpdump port 3306 -vvv -n
我每次尝试远程连接时都会看到以下输出:
我搜索了 tcpdump 手册页,发现 R 表示 TCP RST (RESET) 标志。
稍微搜索了一下,发现了这个 question,它接受的答案让我再次进入了@Slava 自第一条评论以来建议的 IPTABLES。
那时我仔细观察发现我的 INPUT ACCEPT tcp:3306 是在 REJECT TCP reject-with tcp-reset 规则之后定义的,因此显示了日志。
在此之后,我删除了接受 tcp:3306 的规则并将其添加到拒绝 tcp 规则之前,瞧!
iptables -D INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -I INPUT {line number from the first reject tcp rule} -p tcp -m tcp --dport 3306 -j ACCEPT
IPTABLES 现在看起来像这样,最后我可以远程连接到 MySQL:
要列出行号类型的 iptables:
sudo iptables -nL --line-numbers
最后的挑战:
- 为了安全起见,可以通过将您进行远程连接的源 IP 地址列入白名单来改善这一点。
我在虚拟机实例中遇到了类似的问题。
我测试了所有内容,并通过在 mysql.
上创建一个新用户解决了这个问题
我用这个post解决了。
我的问题与
我有一个带有 LEMP 的 GCE VM 实例 MySQL Ver 15.1 Distrib 10.1.18-MariaDB,我正在尝试从我的本地机器远程连接到它。
我已经尝试了我之前提到的问题 link 中的所有建议。
这是我的防火墙配置:
在 my.cnf 文件中我有:
bind-address = 0.0.0.0
关于 MySQL 用户权限我有以下:
当我尝试与 wkreport 用户远程连接时,我得到以下结果:
我的问题是,我错过了什么?!
我刚刚找到了问题的解决方案,
特别感谢@Slava 为我指明了方向,毕竟它是 iptables。
因此,我在尝试远程连接时一直收到 "MySQL connection refused" 消息,因此我搜索了一种查看 TCP 连接日志的方法,并找到了 tcpdump
命令。
通过 运行 sudo tcpdump port 3306 -vvv -n
我每次尝试远程连接时都会看到以下输出:
我搜索了 tcpdump 手册页,发现 R 表示 TCP RST (RESET) 标志。
稍微搜索了一下,发现了这个 question,它接受的答案让我再次进入了@Slava 自第一条评论以来建议的 IPTABLES。
那时我仔细观察发现我的 INPUT ACCEPT tcp:3306 是在 REJECT TCP reject-with tcp-reset 规则之后定义的,因此显示了日志。
在此之后,我删除了接受 tcp:3306 的规则并将其添加到拒绝 tcp 规则之前,瞧!
iptables -D INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -I INPUT {line number from the first reject tcp rule} -p tcp -m tcp --dport 3306 -j ACCEPT
IPTABLES 现在看起来像这样,最后我可以远程连接到 MySQL:
要列出行号类型的 iptables:
sudo iptables -nL --line-numbers
最后的挑战:
- 为了安全起见,可以通过将您进行远程连接的源 IP 地址列入白名单来改善这一点。
我在虚拟机实例中遇到了类似的问题。 我测试了所有内容,并通过在 mysql.
上创建一个新用户解决了这个问题我用这个post解决了。