Ale*_*lex 13 mysql portforwarding vagrant vagrantfile
我试图在Vagrantfile中设置端口转发以从主机系统连接到guest mysqld,但是得到reading initial communication packet错误.主持人:Yosemite,嘉宾:Trusty,vagrant 1.7.4
Vagrantfile(主持人):
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 3306, host: 3309
Run Code Online (Sandbox Code Playgroud)
my.ini文件(游客):
bind-address = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
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.
Run Code Online (Sandbox Code Playgroud)
当我从主机ssh到vagrant box时,端口转发工作:
$ssh vagrant@127.0.0.1 -p 2222 -L3308:localhost:3306
Run Code Online (Sandbox Code Playgroud)
然后我可以mysql -h127.0.0.1 -P3308 -uroot -p毫无问题地从主机连接,我将其用作临时解决方法.
Fré*_*nri 22
终于能够使它工作 -
编辑/etc/mysql/my.cnf文件并确保
bind-address = 0.0.0.0#bind-address ...您可能需要将其添加到my.cnf文件的mysqld部分:
[mysqld]
bind-address = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
确保在更改后重新启动mysql服务器
$ sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)
然后你可以从你的主机连接 - 所以我首先遇到了错误
$ 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
Run Code Online (Sandbox Code Playgroud)
所以我回到客人那里做了
vagrant@precise64:~$ 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)
Run Code Online (Sandbox Code Playgroud)
然后我没有从主机连接的问题
$ 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)
Run Code Online (Sandbox Code Playgroud)