« mod_log_sqlをインストールしてみた | メイン | MySQLのデータディレクトリを変更する »

外部ホストからMySQLへの接続を許可する。

つまらないことだけどちょっとはまったので覚え書き。

MySQLで外部ホストからの接続を許可する場合、「localhost」用の権限と「外部用」の権限の二種類をGRANTで制限する必要がある。

# mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO testuser@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO testuser@localhost IDENTIFIED BY 'password'; 
Query OK, 0 rows affected (0.00 sec)

mysql> use mysql;
Database changed
mysql> select host,user from user;
+--------------+----------+
| host         | user     |
+--------------+----------+
| %            | testuser | 
| localhost    | testuser | 
+--------------+----------+
8 rows in set (0.00 sec)

あとはmy.cnfにbind-addressの記述があった場合には コメントアウトしておくこと。

mysql> set password for testuser@localhost=password('xxxxxxxx');
Query OK, 0 rows affected (0.00 sec)

mysql> set password for testuser@'%'=password('xxxxxxxx');
Query OK, 0 rows affected (0.00 sec)

パスワードの変更はこんな感じ。

参考
http://dev.mysql.com/doc/refman/5.1/ja/adding-users.html
http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html

間違ったGRANT文を正しいと思いこんで、手で打ち込んでいたのが原因でした。あうち。

About

2009年02月14日 22:18に投稿されたエントリーのページです。

ひとつ前の投稿は「mod_log_sqlをインストールしてみた」です。

次の投稿は「MySQLのデータディレクトリを変更する」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。