Я могу легко предоставить доступ к одному 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. * Удаленный доступ к базе данных.
Как я могу это сделать?
Это выглядит , как вы можете также использовать маску подсети , например ,
GRANT ... TO 'user'@'192.168.0.0/255.255.255.0' IDENTIFIED BY ...
источник
192.160.0.34/255.255.255.0
то же самое,192.168.0.34/24
что на самом деле не имеет смысла (/24
означает, что последнее число может быть от 0 до 255, игнорируя ваше значение 34). Это работает, если вы используете действительную маску для IP, например192.168.0.34/255.255.255.252
?Вы бы просто использовали '%' в качестве подстановочного знака, например:
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';
Подстановочный знак - "%" вместо "*".
источник
Просто обратите внимание на особенность, с которой я столкнулся
:
Если у вас есть пользователь, определенный в mysql.user как
'user'@'192.168.0.102'
с паролем 1, а другой'user'@'192.168.0.%'
с паролем 2,тогда,
если вы попытаетесь подключиться к серверу db с веб-сервера как «пользователь» с паролем2,
это приведет к ошибке «Доступ запрещен», поскольку
'user'@'192.168.0.102'
аутентификация с одним IP-адресом используется вместо'user'@'192.168.0.%'
аутентификации с использованием подстановочных знаков .источник
после того, как вы подключите сервер и хотите подключиться к своему хосту, вы должны выполнить следующие шаги:
GRANT ALL ON . to root@'write_your_ip_addres' IDENTIFIED BY 'write_password_to_connect'
nano /etc/mysql/my.cnf
service mysql restart
источник
Мотивированный ответом @Malvineaus, я попробовал сам и заметил, что у меня это не сработало.
Вы можете указать маски подсети с помощью «192.168.1.%» Или «192.168.1.0/255.255.255.0», но подсеть всегда должна содержать полные октеты. см. https://mariadb.com/kb/en/create-user/#host-name-component . В результате функциональность между одним способом спецификации и другим одинакова.
Например, «192.168.1.0/255.255.255.128» не будет работать, так как он находится не на полной границе октета.
источник