Как разрешить удаленное подключение к MySQL

 

В этой статье объясняется, как настроить пользователя на сервере MySQL для удаленного подключения к базе данных MySQL.

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

Для выполнения этих шагов у вас должен быть доступ к локальному серверу, чтобы войти в систему как пользователь root MySQL.

Создание удаленного соединения

Чтобы создать удаленное соединение:

1. На вашем сервере баз данных, как пользователь с привилегиями root, откройте файл конфигурации MySQL.

Чтобы найти его, введите следующую команду:

 mysql --help
Расположение отображается примерно так:
 
Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

2. Перейдите к строке, которая начинается с директивы bind-address.

Если она существует, измените значение следующим образом.

Если она не существует, добавьте его где угодно, кроме раздела [mysqld].

bind-address            = 0.0.0.0

3. Сохраните изменения в файле конфигурации и выйдите из текстового редактора.

4. Перезапустите службу MySQL:

# systemctl restart mysql

Предоставление доступа

Выполните следующие шаги для предоставления доступа пользователю с удаленного хоста:

1. Войдите на сервер MySQL как пользователь root с помощью следующей команды:

 # mysql -u root -p

Вам будет предложено ввести пароль root для MySQL.

2. Используйте команду GRANT в следующем формате, чтобы разрешить доступ для удаленного пользователя.

# GRANT ALL ON <database_name>.* TO <database_username>@<remote_server_ip_address> IDENTIFIED BY '<database_user_password>';

Проверьте доступ к базе данных

Чтобы проверить соединение удаленно, получите доступ к серверу MySQL с другого сервера Linux.

# mysql -u <database_username> -h <remote_server_ip_address> -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 17

Server version: 5.6.26 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> _