Как заставить MySQL принимать подключения извне - PullRequest
3 голосов
/ 02 июня 2009

У меня есть VPS, и я хочу, чтобы mysql DB принимала подключение извне (например, с моего компьютера). У меня установлен Debian Linux на сервере. Я проверил некоторые учебники в Интернете, и они сказали, чтобы прокомментировать:

bind-address          = 127.0.0.1

Но это, похоже, не помогло! Есть ли что-то конкретное для VPS? или я что-то упустил? Команда, которая запускает mysql:

/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock

Ответы [ 3 ]

4 голосов
/ 02 июня 2009

Сервер MySQL должен быть настроен для приема подключений извне (привязка к правильному сетевому интерфейсу в зависимости от ситуации), а его брандмауэр должен быть настроен для разрешения входящих подключений через этот порт (порт TCP 3306). Это может быть, а может и не быть уже настроено при установке MySQL (см. iptables , если вы используете * nix).

Вы также должны учитывать это в разрешениях MySQL следующим образом.

Часто при настройке разрешений MySQL вы устанавливаете права доступа пользователя только для @ 'localhost'. Вам необходимо убедиться, что для учетной записи пользователя и предоставленных ей разрешений задано соответствующее имя хоста или IP-адрес, к которому вы будете подключаться из . Например, вы можете создать нового авторизованного пользователя с:

GRANT ALL PRIVILEGES ON somedatabase.* TO someuser@'somehostname' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Вы должны сделать все это, прежде чем сможете подключиться к этому серверу удаленно, используя что-то вроде этого (в этом примере используется PHP):

mysql_connect('mysqlservername', 'someuser', 'password');
1 голос
/ 02 июня 2009

Вы также должны изменить адрес привязки для внешнего ip вашего VPS-компьютера (ipconfig поможет).

И предоставить доступ с вашего компьютера. Подключитесь к базе данных с локального хоста с привилегиями root и выполните:

grant all privilege on *.* to `username`@`your-pc-id` identified by 'your-password'

Для получения дополнительной информации просмотрите Документация по гранту MySQL .

0 голосов
/ 02 июня 2009

Вы должны установить для bind-address значение внешнего IP-адреса вашей машины вместо локального IP-адреса. Не забудьте перезапустить службу MySQL после этого.

Проверьте эти другие ответы для более подробной информации.

...