Назад | Перейти на главную страницу

Открытие порта 3306 для удаленного MySQL с виртуальной машины

У меня есть виртуальная машина CentOS на моем ноутбуке с адаптерами Host-only и NAT.

Я хочу подключиться к внешней базе данных MySQL на сервере Bluehost. Согласно Bluehost порт 3306 открыт.

Когда я бегу

nmap -v -sV localhost -p 3306

на моей виртуальной машине он обнаруживает открытый порт 3306 / tcp на 127.0.0.1.

Я не уверен, нужен ли мне порт 127.0.0.1, поскольку мой IP-адрес 192.168.56.101? Не знаю, как это настроить дальше. Заранее спасибо.


В iptables я добавил эти две строчки:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --sport 3306 -j ACCEPT

Не уверен, был ли это пункт назначения, или источник, или и то, и другое ?! Это вообще ВХОД?

Вам нужно будет предоставить привилегии, чтобы позволить пользователю подключаться удаленно, а также изменить адрес привязки в вашем /etc/mysql/my.cnf:

bind-address            = 127.0.0.1

Измените его на:

bind-address            = 0.0.0.0

перезапустите свой mysql-сервер

/etc/init.d/mysql restart

0.0.0.0 означает, что вы будете прослушивать все интерфейсы.

Теперь, чтобы предоставить пользователю права на удаленное подключение:

GRANT ALL PRIVILEGES ON DATABASE.* TO 'user'@'%' IDENTIFIED BY "pass";

% означает с любого ip, если вы хотите разрешить это только для определенного IP, замените% на ip.

Если вы видите, что порт 3306 удаленного сервера открыт с вашей виртуальной машины, это похоже на проблему конфигурации MySQL. Экземпляр MySQL на другом вашем сервере, скорее всего, отказывается от вашего соединения, поскольку это не локальное соединение. Это нестандартное поведение MySQL; он не принимает удаленные подключения.

Если вы хотите включить удаленные подключения, попробуйте выдать следующее из вашего экземпляра MySQL:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'yourUsername@xxx.yyy.zzz.aaa' IDENTIFIED BY "pass";

Это позволит пользователю yourUsername подключиться к серверу MySQL с IP-адреса xxx.yyy.zzz.aaa.