Для более комфортного администрирования баз данных иногда возникает необходимость в получении удаленного доступа к серверу MySQL. Давайте посмотрим, как можно настроить удаленный доступ к MySQL. Делается это следующим образом, для пользователя которому необходимо предоставить доступ извне, необходимо вместо localhost указать хост, с которого будет производиться вход. В нашем примере мы будем открывать удаленный доступ для пользователя root. Для безопасности вы можете завести нового пользователя, предварительно указав нужные привилегии для него.
Подключаемся к MySQL:
# mysql –u root –p
Вводим пароль для root в MySQL.
Выбираем базу, с которой будем выполнять наши манипуляции:
USE mysql;
Просмотрим пользователей MySQL:
SELECT Host,User,Password FROM user;
Будет показаны данные примерно в таком виде:
+-----------+--------+-------------------------------------------+ | Host | User | Password | +-----------+--------+-------------------------------------------+ | localhost | root | *425678901585ACDB80C72475B1E70451ADB1263 | +-----------+--------+-------------------------------------------+
Итак, в таблице видно одного пользователя, это root, который может подключаться только локально, об этом говорит значение поля Host: localhost.
Добавим возможность подключения с любого хоста для root:
UPDATE user SET Host='%' WHERE User='root' AND Host='localhost';
Задействуем сделанные изменения:
FLUSH PRIVILEGES;
Обратите внимание ещё на один момент. Не оставляйте пароль пустым для root, иначе доступ к базе будет иметь каждый желающий.
Чтобы сменить пароль для root можно выполнить запрос вида:
UPDATE user SET Password=PASSWORD('новый пароль') WHERE User='root' AND Host='%';
Бывают ситуации, когда в таблице есть записи для нескольких root аккаунтов с разными значениями поля Host. Это означает то что в зависимости от хоста для root могут быть разные пароли, в некоторых ситуациях тоже может быть удобно.
+-------------+--------+-------------------------------------------+ | Host | User | Password | +-------------+--------+-------------------------------------------+ | localhost | root | *425678901585ACDB80C72475B1E70451ADB1263 | +-------------+--------+-------------------------------------------+ | 192.168.1.2 | root | *425678901585ACDB80C72475B1E70451ADB1263 | +-------------+--------+-------------------------------------------+ | 192.168.1.3 | root | *34901585ACDB80C72475B1E70451ADB41263771 | +-------------+--------+-------------------------------------------+ | 192.168.1.9 | root | *1585ACDB80C72475B1E70451ADB126309876588 | +-------------+--------+-------------------------------------------+
Если нет такой необходимости, можно оставить лишь один аккаунт root, а для возможности подключаться удалённо установить значение Host — %.