![从 OpenVPN 服务器连接到 MySQL 服务器](https://linux22.com/image/30643/%E4%BB%8E%20OpenVPN%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%9E%E6%8E%A5%E5%88%B0%20MySQL%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我在服务器上安装了 OpenVPN 服务器。我正在尝试使用 mysql 客户端从 OpenVPN 服务器连接到 MySQL 服务器,而不是使用客户端连接到 OpenVPN 服务器。我可以在服务器之间来回 ping 通,没有问题。但是,如果我在 OpenVPN 服务器上使用 MySQL 客户端来尝试连接到 MySQL 服务器,我会得到一个
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.6' (111)
10.8.0.6 连接到位于 10.8.0.1 的 OpenVPN 服务器。
我认为这可能是 IPTables,但在客户端和服务器上添加显式 INPUT 和 OUTPUT 并没有改变任何内容。 Telnet 10.8.0.6 3306 也不起作用。我已经验证MySQL正在3306上运行:
me@db:~# lsof -i4 -P | grep -i mysql
mysqld 6192 mysql 10u IPv4 40596 0t0 TCP localhost:3306 (LISTEN)
那么我做错了什么?谷歌的帮助不大,据我所知,它应该可以工作。
答案1
您的 MySQL 服务器仅侦听 localhost (127.0.0.1),因此您无法从其他服务器连接到它。这是默认的“安全”设置,可防止其他计算机连接到 MySQL,除非您明确允许。
编辑 my.cnf 文件(可能在 /etc/my.cnf 中)并将绑定地址从 127.0.0.1 更改为以下之一:
- 您的 MySQL 服务器的 IP 地址
- 0.0.0.0监听服务器上配置的所有 IPv4 地址
- ::侦听所有 IPv4 和 IPv6 地址。
http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_bind-address