woshidan's blog

あいとゆうきとITと、とっておきの話。

MySQLで外部ホストのデータベースにクエリを送りたい

最近開発するために開発する環境を作っている私です。

MySQLで外部ホストにたいしてSQLを送るにはどうしたらいいのかなーと悩んでいたのですが、あっさり解決したのであっさりメモします。

まとめ

  • MySQLにおいて基本的に外部ホストへはアクセスできないようになっている
  • MySQLにおいてデータベースにどこのホストからアクセスするかはそのホストのmysqlデータベースのuserテーブルに入っているユーザー情報で管理
  • 外部ホストにアクセスしたい場合は、アクセスしたいホストにアクセス元のサーバからのアクセスを許可したユーザーを作ってあげる
// 接続先のホストにて接続元のホスト(client_host)からアクセスするユーザーを作成
mysql> GRANT ALL PRIVILEGES ON target_database.* TO access_user@client_host IDENTIFIED BY 'pass';
mysql> SELECT host,user FROM mysql.user;
+------------------------------------+---------------+
| host                               | user          |
+------------------------------------+---------------+
| client_host                        | access_user   |
+------------------------------------+---------------+
// client_host上から
mysql -u access_user -h target_host target_database < request.sql
// 省略してますが、パスワードの入力あり

参考

MySQL:外部ホストからのDBアクセス方法

MySQLに外部ホストから接続できるように設定する | WEBサービス創造記

MySQL ユーザの操作(作成、パスワード変更、削除)