Новости
Семь Чёрных пятниц на неделе — и все в Serverspace!
Serverspace Black Friday
VB
15 ноября 2022
Обновлено 15 ноября 2022

Организация удаленного доступа к серверу MySQL

Что такое MySQL и зачем может понадобиться удаленный доступ к нему

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

Подготовительный этап

Чтобы разрешить доступ к своим базам данных потребуется:

  • Сервер, управляемый актуальной операционной системой (например, Ubuntu 20.04);
  • Доступ к системной учетной записи «root»;
  • Привилегированный доступ к сервису управления базами данных.

Разблокировка доступа к MySQL извне

Чтобы разрешить «внешние» подключения к серверу базы данных, выполните следующие действия:

Войдите на свой сервер как привилегированный пользователь и уточните, какой именно сетевой порт использует MySQL:

netstat -tlnp | grep my

pic1

Как видим, прослушивается TCP-порт 3306. Разрешим доступ к нему в настройках брандмауэра:

ufw allow 3306

pic2

Далее нужно найти, в каком именно из файлов, описывающих настройки MySQL, объявлен адрес, прослушиваемый службой:

grep -r "bind" /etc/mysql/

pic3

Замените значение директивы bind-address на 0.0.0.0 и проверьте результат:

sed -i.bak -e 's/127.0.0.1/0.0.0.0/g' /etc/mysql/mysql.conf.d/mysqld.cnf
cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep bind

pic4

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

service mysql restart

Следующий шаг не является обязательным. Вы можете аутентифицироваться в сервисе как существующий пользователь или же создать новый аккаунт и предоставить ему соответствующие привилегии:

mysql  # вход в консоль управления сервисом
CREATE USER <имя_пользователя>;  # создание учетной записи
ALTER USER <имя_пользователя> IDENTIFIED WITH mysql_native_password BY '<пароль>';  # установка пароля
GRANT ALL ON <имя_базы_данных>.* TO <имя_пользователя>;  # предоставление привилегий
FLUSH PRIVILEGES;  # применение сделанных изменений

pic6

Проверка доступности службы

Чтобы проверить результат проделанных действий, войдите в консоль «удаленного» сервера и выполните команду:

mysql -h <IP_сервера_БД> -u<имя_пользователя> -p

pic7

Затем введите или вставьте скопированный ранее в буфер пароль от созданной учетной записи, чтобы попасть на сервер управления базами данных.
Теперь можно, например. посмотреть на содержимое базы:

show databases;
show tables in <имя_базы_данных>;
select * from <имя_базы_данных>.<имя_таблицы>;

pic8

Краткие итоги

После прочтения этой статьи вы узнали, как получить доступ извне к вашему серверу MySQL и удаленно управлять размещенными там данными.

Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
050000 г. Алматы пр. Сейфуллина, д. 502
+7 (777) 555-36-66
ООО «ИТГЛОБАЛКОМ ЛАБС»