Google

10 нояб. 2014 г.

Mysql: разрешаем пользователю root удаленное подключение

Имеем сервер (Ubuntu Server) в сети с установлленым MySQL сервером. Необходимо разрешить пользователю root удаленное подключение к базе данных.

В целях безопасности данный способ не рекомендуется использовать на production серверах.

Делаем резервную копию файла настроек:
sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.orig
По данному пути файл настроек mysql находится в дистрибутивах linux, основанных на debian. В других дистрибутивах linux (Centos, openSUSE, Fedora, etc) расположение файла настроек базы данных mysql может отличаться.
Кроме того, в некоторых дистрибутивах, например openSUSE, по умолчанию (вместо MySQL) установлена база данных MariaDB.
В файле настроек (/etc/mysql/my.cnf) находим параметр bind-address и меняем его стандартное значение (127.0.0.1) на 0.0.0.0:
bind-address           = 0.0.0.0
Либо комментируем строку с данным параметром:
#bind-address           = 0.0.0.0
Перезапускаем mysql сервер:
sudo /etc/init.d/mysql restart
Подключаемся к базе данных пользователем root через mysql-client. В консоли вводим команду:
mysql -u root -p;
Выбираем схему mysql по умолчанию:
use mysql
Выводим список всех хостов и пользователей базы данных:
select host, user from user;
В результате получаем вывод вида:
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| ubuntu    | root             |
| 127.0.0.1 | root             |
| ::1       | root             |
| localhost | debian-sys-maint |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)
У меня на виртуальной машине Ubuntu Server имеет хост 'ubuntu'.
Изменяем хост ubuntu для пользователя root:
update user set host='%' where user='root' and host='ubuntu';
Обновляем привелегии:
flush privileges
Пробуем подключится пользоватлем root с другой машины удаленно.

Как подключится пользователем root к удаленному хосту описано тут.

0 comments:

Отправить комментарий

Social