サーバーに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