Как установить соединение с базой данных MySQL на одном сервере из другого сервера?

  • 6 сентября 2023 г. 9:27
Ответы на вопрос 2
Ошибка "Access denied for user 'username'@'%'" означает, что пользователю 'username' отказано в доступе к базе данных из-за неправильной настройки разрешений или неверных учетных данных.

Чтобы установить соединение с базой данных MySQL на одном сервере из другого сервера, вы можете выполнить следующие действия:

1. Убедитесь, что база данных MySQL на удаленном сервере настроена на принятие удаленных подключений. Для этого проверьте файл my.cnf (обычно расположенный в /etc/mysql/my.cnf) на наличие следующей строки:
   ```
   bind-address = 0.0.0.0
   ```
   Если эта строка закомментирована (начинается с символа "#"), удалите символ "#". Затем перезапустите сервер MySQL.

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

3. Проверьте права доступа пользователя к базе данных. Убедитесь, что пользователю 'username' разрешен доступ к базе данных, указанной в вашем коде подключения.

   В MySQL вы можете настроить разрешения для пользователя с помощью команды GRANT. Пример команды GRANT для разрешения доступа пользователя к базе данных:
   ```
   GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%' IDENTIFIED BY 'password';
   ```
   В этом примере 'username' - это ваше имя пользователя, 'password' - ваш пароль, а 'database_name' - название вашей базы данных. Также '%', укажет, что пользователь с этим именем и паролем может подключаться с любого хоста.

   После внесения изменений в разрешения пользователей, перезапустите сервер MySQL.

4. Убедитесь, что порт MySQL (обычно порт 3306) открыт на сервере, где находится база данных, и на сервере, с которого вы пытаетесь подключиться. Проверьте настройки брандмауэра и убедитесь, что порт MySQL разрешен для входящего соединения.

Если вы следуете этим шагам и все настроено правильно, вы должны успешно установить соединение с базой данных MySQL с другого сервера. Если проблемы все еще возникают, убедитесь, что вы используете правильные данные для подключения и что сервер базы данных доступен.
Настройте открытие порта 3306 на вашей машине с MySQL. Убедитесь, что таблица доступа содержит запись 'username'@'%'. Далее, для вашего пользователя, используйте следующую команду для предоставления ему полного доступа к базе данных:

GRANT ALL PRIVILEGES
ON database.*
TO 'user'@%
IDENTIFIED BY 'newpassword'

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