最近、複数台のサーバーでシステムを構築しています。
MySQLには指定したHostからのみアクセス出来るようにする必要があったのでメモしておきます。
###構成はこんな感じで
サーバーA(プログラム)
→サーバーB(DB)
←サーバーC(プログラム)
サーバーA(44...)とサーバーC(19...)からのみサーバーBにアクセス出来るようにしたいです。
※44...や19..***.***は任意のIPです
###アクセスを許可するMySQLの設定
####サーバーBでの作業です。
$ mysql -u n0bisuke -p
mysql> use mysql;
mysql> select user,host from mysql.user;
+----------+---------------+
| user | host |
+----------+---------------+
| n0bisuke | 44.***.***.***|
| n0bisuke | localhost |
+----------+---------------+
2 rows in set (0.00 sec)
この時点でサーバーA(44...)からサーバーBへの接続は許可されています。ここにサーバーC(19...)からのアクセス許可をしてみます。
DB接続情報 | 値 |
---|---|
Host | 19...*** |
User | n0bisuke |
database | my_database |
password | passwd |
mysql> grant all privileges on my_database.* to n0bisuke@"19.***.***.***" identified by 'passwd' with grant option;
mysql> select user,host from mysql.user;
+----------+---------------+
| user | host |
+----------+---------------+
| n0bisuke | 19.***.***.***|
| n0bisuke | 44.***.***.***|
| n0bisuke | localhost |
+----------+---------------+
3 rows in set (0.00 sec)
hostとuserが追加されていればOKです!
サーバーの構成って多くなると忘れがちになりますね汗