MySQL. Как открыть удаленный доступ к базе?


Открытие удаленного доступа — вопрос , встречающийся достаточно часто, но также часто вызывающий проблемы и дополнительные трудозатраты. Разберемся по шагам, как открыть удаленный доступ к базе данных MySQL.

Подключаемся к серверу по ssh.

На сервере пишем:

mysql -uroot -p

Вводим пароль, логинимся. Далее пишем:

use mysql

Теперь посмотрим, какие пользователи есть на сервере и с каких хостов они могут подключаться:

SELECT Host,User,Password FROM user;

После этого Вы увидите таблицу, наподобие примера ниже:

+-----------+--------+-------------------------------------------+
| Host      | User   | Password                                  |
+-----------+--------+-------------------------------------------+
| localhost | root   | *425678901585ACDB80C72475B1E70451ADB1263  |
+-----------+--------+-------------------------------------------+

Это означает, что создан один пользователь — root, у которого установлен пароль и подключатся он может только с localhost.

Чтобы разрешить root доступ с любого адреса выполните следующие команды:

UPDATE user SET Host='%' WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;

Здесь мы устанавливаем значение колонки host в %, что означает снятие ограничений — т.е. подключений с любого хоста, что нам и было нужно. Вторая команда применяет внесенные изменения.

Для изменения пароля воспользуйтесь следующей командой:

UPDATE user SET Password=PASSWORD('новый пароль') WHERE User='root' AND Host='%';

Кстати, используя эту таблицу и манипуляции с ней можно сделать один очень интересный трюк. В таблице может быть несколько записей для одного пользователя — грубо говоря, несколько root с разными host и соответственно разными паролями. Например, так:

+-------------+--------+-------------------------------------------+
| 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, ему нужно будет вводить разные пароли.

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *