このコードを使用して、1つのIPへのアクセスを簡単に許可できます。
$ mysql -u root -p
Enter password:
mysql> use mysql
mysql> GRANT ALL ON *.* to root@'192.168.1.4' IDENTIFIED BY 'your-root-password';
mysql> FLUSH PRIVILEGES;
しかし、サブネット192.168.1。*全体がデータベースにリモートでアクセスできるようにする必要があります。
どうやってやるの?
編集:このページで Malvineous の答えを見て、それを支持することを検討してください。ネットマスクは、はるかにエレガントなソリューションです。
IPアドレスでワイルドカードとしてパーセント記号を使用するだけです。
http://dev.mysql.com/doc/refman/5.1/en/grant.html から
ホスト名にワイルドカードを指定できます。たとえば、
user_name@'%.example.com'
はuser_name
ドメインのすべてのホストのexample.com
に適用され、user_name@'192.168.1.%'
はuser_name
のすべてのホストの192.168.1
に適用されますクラスCサブネット。
ネットマスクを使用することもできるようです 、例えば.
GRANT ... TO 'user'@'192.168.0.0/255.255.255.0' IDENTIFIED BY ...
次のようにワイルドカードとして「%」を使用します。
GRANT ALL ON *.* to root@'192.168.1.%' IDENTIFIED BY 'your-root-password';
mysql> GRANT ALL ON *.* to root@'192.168.1.%' IDENTIFIED BY 'your-root-password';
ワイルドカード文字は、「*」ではなく「%」です
私が直面した特異性のメモ:
検討:
db server: 192.168.0.101
web server: 192.168.0.102
Mysql.userでpassword_1を持つ'user'@'192.168.0.102'
とpassword2を持つ別の'user'@'192.168.0.%'
としてユーザーを定義している場合
その後、
password2で「ユーザー」としてWebサーバーからdbサーバーに接続しようとすると
単一のIP 'user'@'192.168.0.102'
認証がワイルドカード'user'@'192.168.0.%'
認証を介して使用されるため、「アクセス拒否」エラーが発生します。