如何连接到VirtualBox Vagrant内的Mysql Server?

riz*_*oro 93 mysql virtualbox vagrant

我用Vagrant安装了一个新的VirtualBox机器,在那个VM里面我安装了Mysql Server.如何在虚拟机之外连接到该服务器?我已经转发了Vagrantfile的端口3306,但是当我尝试连接到mysql服务器时,它会重新发送错误:'读取初始通信包'

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
Run Code Online (Sandbox Code Playgroud)

Dro*_*sky 125

确保MySQL绑定到0.0.0.0而不是127.0.0.1,否则将无法从计算机外部访问它

您可以通过编辑my.conf文件并查找bind-address项目来确保这一点- 您希望它看起来像bind-address = 0.0.0.0.然后保存并重启mysql:

sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)

如果您在生产服务器上执行此操作,则需要了解安全隐患,如下所述:https://serverfault.com/questions/257513/how-bad-is-setting-mysqls-bind-address-to -0-0-0-0

  • 我得到这个`Host '10 .0.2.2'不允许连接到这个MySQL服务器.但是用http://serverfault.com/a/486716/147813解决了 (9认同)
  • 您可以使用以下命令(在CentOS上测试)在引导文件中自动执行此步骤:```sed -i'/ symbolic-links = 0/symbolic-links = 0 \nbind-address = 0.0.0.0/g'在/ etc/my.cnf``` (7认同)
  • 除了@CMCDragonkai serverfault链接(我没有在那里发表评论)之外,这个命令可以像Ansible脚本一样用于自动授予root用户权限:`mysql -e"create user'root'@' 10.0.2.2'由'vagrant'标识;使用grant选项授予*.*的所有权限到'root'@'10.0.2.2'; flush特权;"` (2认同)

小智 49

使用ssh vagrant@127.0.0.1 -p 2222(密码vagrant)登录到您的包装盒

然后:sudo nano /etc/mysql/my.cnf用#注释掉以下几行

#skip-external-locking 
#bind-address
Run Code Online (Sandbox Code Playgroud)

保存并退出

然后: sudo service mysql restart

然后,您可以通过SSH连接到MySQL服务器.

  • 我用"#"而不是";"注释掉了 (10认同)
  • 我必须绑定地址并运行它:`授予所有特权*.*给'myuser'@'%'WITH GRANT OPTION;` (3认同)

小智 18

我最近遇到过这个问题.我使用PuPHPet生成配置.

要通过SSH连接到MySQL,"vagrant"密码对我不起作用,而是必须通过SSH密钥文件进行身份验证.

连接MySQL Workbench

连接方法

SSH上的标准TCP/IP

SSH

Hostname: 127.0.0.1:2222 (forwarded SSH port)
Username: vagrant
Password: (do not use)
SSH Key File: C:\vagrantpath\puphpet\files\dot\ssh\insecure_private_key
              (Locate your insercure_private_key)
Run Code Online (Sandbox Code Playgroud)

MySQL的

Server Port: 3306
username: (root, or username)
password: (password)
Run Code Online (Sandbox Code Playgroud)

测试连接.


Sar*_* B. 17

对于任何试图使用mysql workbench或sequel pro进行此操作的人来说,这些都是输入:

Mysql Host: 192.168.56.101 (or ip that you choose for it)
username: root (or mysql username u created)
password: **** (your mysql password)
database: optional
port: optional (unless you chose another port, defaults to 3306)

ssh host: 192.168.56.101 (or ip that you choose for this vm, like above)
ssh user: vagrant (vagrants default username)
ssh password: vagrant (vagrants default password)
ssh port: optional (unless you chose another)
Run Code Online (Sandbox Code Playgroud)

来源:https://coderwall.com/p/yzwqvg


Wal*_*rer 13

那么,既然没有给出答复的帮助我,我不得不寻找更多的研究,发现解决这个文章.

答案简而言之如下:

使用MySQL Workbench连接MySQL

Connection Method: Standard TCP/IP over SSH
SSH Hostname: <Local VM IP Address (set in PuPHPet)>
SSH Username: vagrant (the default username)
SSH Password: vagrant (the default password)
MySQL Hostname: 127.0.0.1
MySQL Server Port: 3306
Username: root
Password: <MySQL Root Password (set in PuPHPet)>
Run Code Online (Sandbox Code Playgroud)

使用给定的方法,我能够使用MySQL Workbench从主机Ubuntu机器连接到vagrant中的mysql数据库,并使用Valentina Studio.