オープンソースのデータベースであるMySQLは、接続の制御が出来ます。XAMPPなどでインストールすると基本はローカルホストのみで設定されているのですが、インストールされている環境によって「ERROR 2003 Can't connect to MySQL server」などが表示されて接続することが出来ないことがあります。
そこで、備忘録としてMySQLの外部接続の接続方法を記載したいと思います。
目次
- 前提条件
- ポート・ネットワーク接続の確認
- MySQLの設定ファイルの設定
- 外部接続の設定
- 起動時のオプションの設定
前提条件
ポート・ネットワーク接続の確認
まずは接続しようとしている外部ホストからMySQLがインストールされているサーバに対して接続ポートが開いているか確認します。ポート番号の調べ方は、mysqlにログインし、以下のコマンドで確認します。
show variables like 'port';
ポート番号を確認しましたら、接続するホストからtelnetでポート指定をして接続してみます。
接続出来なかったらファイアーウォール等でTCP/IPで接続が不可能な状態となっております。
MySQLの設定ファイルの設定
MySQLに関する設定はWindowsではmy.iniに格納されています。(デフォルトではMySQLがインストールされているフォルダ)そのファイルを開き、「bind-address」という項目があったらコメントアウト(頭に#を付ける)します。
この設定がコメントアウトされていなく有効になっていると、次に行うコマンドで外部ホストを許可しても無効とされます。
この「bind-address」という設定は、接続するホストを指定するもので、ここに接続ホストを追加しても追加されるホストが増えるわけでもなく起動しなくなるだけなので注意が必要です。
外部接続の設定
MySQLでは、以下のコマンドにて指定したホストに対して権限とユーザを定義することで接続可能になります。尚、コマンドはroot権限のユーザで行います。
grant all privileges on データベース名.* to ユーザ名@"ホスト" identified by 'パスワード' with grant option;
以下のコマンドで正しく登録できたか確認します。
select user,host from mysql.user;
起動時のオプションの設定
ここまで出来たら後は、MySQLの起動オプションの見直しです。起動オプションや設定ファイルに「--skip-networking」というTCP/IPを無効にするオプションが記載されていた場合、ネットワーク接続出来ないので削除します。