MySQLに外部接続できない時のチェックポイント

MySQLはデフォルトでは外部ホストからの接続を許可しない設定になっています。「MySQLを別サーバーで建てたのに、外部サーバーからアクセスできない。さて困ったな。どうしよう。」となった時にチェックするポイントをまとめてみました。

MySQLの外部接続が上手くいかない場合のチェックポイント

外部ホストから確認する方法 基本編

まずはコマンドを叩いてログインできるか確認してみましょう!以下のコマンドを実行することで外部ホストからMySQLにログインすることができます。

MySQLを外部サーバーで立てて別サーバーからアクセスして見る場合、まずこのコマンドを叩いてみてください。「ああ、やっぱりアクセスできない。」ってなりましたら、設定でつまずいている可能性大なので原因を探っていきます。

mysqlコマンドでログインできない場合のチェックポイント4つ

だいたい以下の4項目をチェックすると、どこが原因なのかわかります。

  1. 外部サーバーへpingコマンドを叩く
  2. 外部サーバーに直接ログインし、サーバー上でMySQLにアクセス
  3. /etc/mysql/my.cnfの確認
  4. サーバーのファイヤーウォールの設定を確認

1. 外部サーバーへpingコマンドを叩く

外部サーバーとそもそもやりとりが可能か確認する

2. 外部サーバーに直接ログインし、サーバー上でMySQLにアクセス

pingを確認し外部ホストの通信がOKと確認できたら、サーバーMySQLにアクセスできるか確認します。実際にMySQLにアクセスし、ポートとユーザを確認します。

MySQLのポート番号を確認

外部ホストへアクセスする際のポート番号を確認します。
MySQLはデフォルトでTCPポート3306が空いているか確認するため、以下のコマンドをMySQL上で実行

MySQLのホストとユーザを確認

ユーザの権限とホストのIPアドレス制限を確認していく

ワイルドカード%だと全てのIPアドレスからアクセス可

3. /etc/mysql/my.cnfの確認

MySQLの設定ファイルであるmy.cnfを確認していく

  1. ポート番号
  2. bind-address

となっている場合、localhostからしかアクセスできないため接続したいマシンのIPアドレスに変更する

4. サーバーのファイヤーウォールの設定を確認

AWS や IDCF Cloud や さくらVPSなどの管理画面にて、ファイアウォールがかかっていないか確認する。
MySQLのために開放しているポート番号が許可されていることをチェック


もしよければ応援クリックお願いします
↓↓↓↓↓
にほんブログ村 IT技術ブログ IT技術メモへ