Для того чтобы пользователь root (или любой другой пользователь) мог подключиться с СУБД MySQL с удалённого хоста, необходимо выполнение двух условий:
1) в свойствах пользователя должно быть разрешено подключаться с удалённых хостов
2) СУБД должна прослушивать входящие соединения не только с localhost/127.0.0.1, но и на интерфейсах с внешними IP адресами.
В этой инструкции мы включим доступ root к MySQL и MariaDB с удалённых хостов.
Этот процесс состоит из двух этапов:
а) Настройка привилегии. Выполните как пользователь root, заменив 'ПАРОЛЬ' текущим паролем root:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'ПАРОЛЬ';
б) Разрешить MySQL прослушивать все сетевых интерфейсы для возможности подключения с внешних IP:
Самый простой способ — закомментировать строку в файле my.cnf, чтобы получилось так:
#bind-address = 127.0.0.1
Файл mysql.cnf может быть расположен по следующим путям:
- /etc/mysql/conf.d/mysql.cnf
- /etc/mysql/mariadb.cnf
- /etc/mysql/mysql.conf.d/mysqld.cnf
Чтобы изменения вступили в силу, перезапустите службу mysql:
sudo systemctl restart mysql
По умолчанию прослушивается только соединения с localhost, но если вы закомментируете строку, MySQL откроет порты для входящих соединений на всех интерфейсах. Комментирование строки эквивалентно bind-address=*.
Чтобы проверить, какие порты прослушивает служба mysql:
ss -tulpn | grep -E 'mysql|mariadb'
Связанные статьи:
- Как установить веб-сервер Apache с PHP 7, MariaDB/MySQL и phpMyAdmin (LAMP) на Ubuntu (100%)
- Ошибка «mysqli_connect(): (HY000/1045): Access denied for user 'username'@'localhost'» (РЕШЕНО) (100%)
- Как установить веб-сервер (Apache, PHP, MySQL, phpMyAdmin) на Linux Mint, Ubuntu и Debian (90.7%)
- Ошибка «ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2 "No such file or directory")» (РЕШЕНО) (82.2%)
- Как удалить все записи в таблице в phpMyAdmin (82.2%)
- Как установить Nginx, MySQL, PHP в Ubuntu 16.10 или 17.04 (RANDOM - 25.6%)