OpenVPNサーバーからMySQLサーバーに接続する

OpenVPNサーバーからMySQLサーバーに接続する

サーバーにOpenVPNサーバーをインストールしました。 OpenVPNサーバーに接続するためにクライアントを使用する代わりに、mysqlクライアントを使用してOpenVPNサーバーからMySQLサーバーに接続しようとしています。問題なくサーバー間で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サーバーに接続します。

私はIPTableかもしれないと思いましたが、クライアントとサーバーの両方に明示的な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)

それでは、私が何を間違っているのでしょうか? Googleはあまり役に立ちませんでした。

答え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

関連情報