Подтвердить что ты не робот

Как предоставить удаленный доступ к MySQL для всей подсети?

Я могу легко предоставить доступ к одному IP-адресу с помощью этого кода:

$ mysql -u root -p
Enter password:    
mysql> use mysql    
mysql> GRANT ALL ON *.* to [email protected]'192.168.1.4' IDENTIFIED BY 'your-root-password';     
mysql> FLUSH PRIVILEGES;

Но мне нужно разрешить всю подсеть 192.168.1. * удаленно обращаться к базе данных.

Как я могу это сделать?

4b9b3361

Ответ 1

РЕДАКТИРОВАТЬ: рассмотрите возможность поиска и продвижения Malvineous на этой странице. Netmasks - гораздо более элегантное решение.


Просто используйте знак процента в качестве подстановочного знака в IP-адресе.

От http://dev.mysql.com/doc/refman/5.1/en/grant.html

Вы можете указать подстановочные знаки в имени хоста. Например, [email protected]'%.example.com' применяется к user_name для любого хоста в домене example.com, а [email protected]'192.168.1.%' применяется к user_name для любого хоста в подсети класса 192.168.1.

Ответ 3

Вы просто использовали бы "%" в качестве своего подстановочного знака следующим образом:

GRANT ALL ON *.* to [email protected]'192.168.1.%' IDENTIFIED BY 'your-root-password';

Ответ 4

mysql> GRANT ALL ON *.* to [email protected]'192.168.1.%' IDENTIFIED BY 'your-root-password';  

Символом подстановки является "%" вместо "*"

Ответ 5

Просто примечание об особенностях, с которыми я столкнулся:
Рассмотрим:

db server:  192.168.0.101
web server: 192.168.0.102

Если в mysql.user задан пользователь с именем 'user'@'192.168.0.102' с паролем 1 и другим 'user'@'192.168.0.%' с паролем2,

тогда

если вы попытаетесь подключиться к серверу db с веб-сервера как "пользователь" с паролем2,

это приведет к ошибке "Доступ запрещен", поскольку для проверки подлинности подстановочного символа 'user'@'192.168.0.%' используется идентификатор IP 'user'@'192.168.0.102'.