Подтвердить что ты не робот

Переадресация порта для Mysql

Я пытаюсь настроить перенаправление портов в Vagrantfile для подключения к гостевой mysqld из хост-системы, но получить reading initial communication packet ошибку. Хозяин: Йосемити, Гость: Доверенный, бродячий 1.7.4

Vagrantfile (хост):

config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 3306, host: 3309

my.ini(гость):

bind-address            = 127.0.0.1

8080 пересылка работает как шарм.

mysql -h127.0.0.1 -uroot -p от гостя также работает.

mysql -h127.0.0.1 -P 3309 -uroot -p из результатов хоста с ошибкой reading initial communication packet.

Когда я telnet от хоста, соединение мгновенно закрывается:

$ telnet localhost 3309
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

Переадресация портов работает, когда я передаю ssh брандмауэру из узла:

$ssh [email protected] -p 2222 -L3308:localhost:3306 

Затем я могу подключиться с хоста mysql -h127.0.0.1 -P3308 -uroot -p без проблем, который я использую в качестве временного обходного пути.

4b9b3361

Ответ 1

наконец-то смог заставить его работать -

отредактируйте файл /etc/mysql/my.cnf и убедитесь, что

  • у вас есть bind-address = 0.0.0.0
  • или вы прокомментируете строку #bind-address ...

убедитесь, что вы перезагрузили сервер mysql после изменения

$ sudo service mysql restart

Затем вы можете подключиться с вашего хоста - так что у меня была первая ошибка, например

$ mysql -h127.0.0.1 -P 3309 -uroot -p
Enter password:
ERROR 1130 (HY000): Host '172.16.42.2' is not allowed to connect to this MySQL server

поэтому я вернулся к гостю и сделал

[email protected]:~$ mysql -h127.0.0.1 -uroot -p
...
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.42.2' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Тогда у меня не было проблем для подключения с главной машины

$ mysql -h127.0.0.1 -P 3309 -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 36
Server version: 5.5.44-0ubuntu0.12.04.1 (Ubuntu)

Ответ 2

Первый ответ правильный, но недостаточно. Когда я подключаю MySQL, я получаю сообщение об ошибке:

Host '10.0.2.2 'не разрешено подключаться к этому серверу MySQL

Решение:

создать пользователя 'root'@'10.0.2.2', идентифицированный "паролем";

предоставить все привилегии. к 'root'@'10.0.2.2' с возможностью предоставления гранта;

привилегии flush;

aha, все проблемы решены,