MySQLで外部から接続するときにチェックする項目
サーバーにMySQLを入れたけど、外のマシン(ネットワーク)から接続できないよ!って時は以下の内容をチェックしてみる。
1. mysqldのuserテーブルの設定
以下コマンドでユーザの権限状態を確認。
$ mysql -u root mysql mysql> select user, host, password from user;
権限が無い場合はGRANTコマンドで、外部からの接続を許可すること。
mysqlユーザの追加方法、GRANTの使用法等参照。
2.my.cnfのbind-address設定
my.confのbind-addressの設定を確認してみる。
$ vi /etc/mysql/my.cnf bind-address = 127.0.0.1 bind-address = (接続したいマシンのIPアドレス)
追加したい接続先のIPを書いた「bind-address」を追加していけばOK。
どのIPからも接続許可する場合はbind-addressをコメントアウトすればOK。
3.ポートの確認
デフォルトではMySQLがTCPポート3306番でListenしているので、
ポートが開いているか確認。
$ netstat -tlpn
0.0.0.0:3306 〜 LISTEN xxxx/mysqld の表示があればOK。
4.ファイアーウォール設定を確認
Netfilter/iptables で、接続制限をかけていないか確認。
$ iptables -L
ここでファイアーウォールが有効になっている場合は、iptablesコマンドで制限を無効化するなどしてmysqlの通信を許可する。