MySQL を外部接続できるようにする

前回で MySQL をインストールしましたが、 外部から接続するために設定が必要だったのでメモ。

まず、普通に接続しようとすると以下のエラーメッセージが出ました。

SQL Error (2003) Can't  connect to MySQL server

で、設定ファイルを編集します。

sudo vim /etc/mysql/my.cnf

↓この bind-address の行をコメントアウトします。

 # bind-address       = 127.0.0.1

編集したら再起動

sudo service mysql restart

で、外部から接続テストすると

sql error 1130 host is not allowed to connect to this mysql server

なエラーメッセージが。 まだ権限付与しないとダメらしいので コマンドラインから接続して設定します。

mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'192.168.%' IDENTIFIED BY 'root のパスワード' WITH GRANT OPTION;

これで他ホストから接続できました。

IP address 'XXX.XXX.XX.XX' could not be resolved: Name or service not known

ただ、以下のようなワーニングが出て気になったので設定した。 /etc/mysql/my.cnf に

skip-name-resolve

を追加したら OK でした。