Включить удаленный доступ к серверу MySQL (Linux)

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

3 голоса | спросил Petko 19 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 19 Sep 2016 10:30:52 +0300 2016, 10:30:52

1 ответ


2

Вы должны разрешать только статический удаленный IP-доступ к локальному серверу MySQL, поскольку включение всех IP-адресов является угрозой безопасности. Используйте приведенное ниже руководство в качестве справки о процедуре, которой необходимо следовать для обеспечения удаленного доступа.

  

ИСТОЧНИК

     

Измените конфигурацию mysql

     

Начните с редактирования файла конфигурации mysql

vim /etc/mysql/my.cnf
     

Прокомментируйте следующие строки.

#bind-address           = 127.0.0.1
#skip-networking
     

Если вы не найдете строку skip-network, добавьте ее и закомментируйте.

     

Перезагрузите сервер mysql.

~ /etc/init.d/mysql restart
     

Изменить привилегию GRANT

     

Вы можете быть удивлены, увидев, что даже после изменения выше вы не   получения удаленного доступа или получения доступа, но не для всех баз данных.

     

По умолчанию, имя пользователя и пароль mysql разрешено   доступ к mysql-серверу локально. Поэтому необходимо обновить привилегии.

     

Запустите команду, как показано ниже, для доступа ко всем машинам. (Заменить   USERNAME и PASSWORD по вашим учетным данным.)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
     

Выполните команду, как показано ниже, чтобы получить доступ к определенному IP-адресу. (Заменить   USERNAME и PASSWORD по вашим учетным данным.)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
     

Вы можете заменить 1.2.3.4 своим IP-адресом. Вы можете выполнить команду выше многих   раз для доступа GRANT от нескольких IP-адресов.

     

Вы также можете указать отдельный код USERNAME & PASSWORD для удаленного   доступ.

     

Вы можете проверить окончательный результат:

SELECT * from information_schema.user_privileges where grantee like "'USERNAME'%";
     

Наконец, вам также может потребоваться запустить:

mysql> FLUSH PRIVILEGES;
     

Тестовое соединение

     

От терминала /командной строки:

mysql -h HOST -u USERNAME -pPASSWORD
     

Если вы получаете оболочку mysql, не забудьте запустить базы данных шоу; Проверять   если у вас есть права на удаленные компьютеры.

     

Бонусный совет: отменять доступ

     

Если вы случайно предоставляете доступ к пользователю, то лучше отменить   опция удобна.

     

После этого будут отменены все параметры USERNAME со всех компьютеров:

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'%';
Following will revoke all options for USERNAME from particular IP:

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'1.2.3.4';
Its better to check information_schema.user_privileges table after running REVOKE command.
     

Если вы видите привилегию USAGE после выполнения команды REVOKE, это будет нормально. Это   так же хороша, как и никакая привилегия. Я не уверен, можно ли его отозвать.

ответил Simon Hayter 19 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 19 Sep 2016 10:52:53 +0300 2016, 10:52:53

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132