̃Gg[͂ĂȃubN}[Nɒlj

MySQL :: 外部ホストから接続を許可する



運用方針として、外部接続用の専用ユーザーを作成し、そのユーザーからのみ、外部接続を許可します。

  • ユーザーに与える権限は、select, insert, update, delete とする
  • ユーザー名は「ext_user」とし、パスワードは <PASSWORD> とする
  • 外部接続を許可するデータベースは「test_db」とする


1) すべてのホストから接続を許可する場合

mysql> grant select,insert,update,delete on test_db.* to ext_user@"%" identified by '<PASSWORD>';

2) example.com からのみ接続を許可する場合

mysql> grant select,insert,update,delete on test_db.* to ext_user@"example.com" identified by '<PASSWORD>';

3) LAN上のすべてのホストから接続を許可する場合

mysql> grant select,insert,update,delete on test_db.* to ext_user@"192.168.%" identified by '<PASSWORD>';

※ 全権限を与えたい場合は下記のようにする

mysql> grant all privileges on ...

※ 全テーブルに権限を与えたい場合は「test_db.*」を下記のようにする

test_db.* ⇒ *.*

1~3のいずれかを実行後、設定を反映させる

mysql> flush privileges;


接続テスト

% mysql -h <DB_HOST DOMAIN or IP_ADDR> -u ext_user -p
Enter password:

接続したら、念のため意図しないデータベースが見えてないか確認する

mysql> show databases;



最初からやり直したい時は、ユーザーを削除しよう。

ユーザの削除

mysql> delete from mysql.user where user='ext_user';

権限の剥奪

mysql> revoke all privileges on *.* from ext_user;

設定の反映

mysql> flush privileges;





database/mysql/setup/allow_connect_remote_host.txt