我尝试sudo netstat -natp | grep mysql
查看 mysql 正在监听的端口,我发现它实际上正在监听下面的端口。我还做了一个 ifconfig
来查看我在 vagrant box 中的 IP 地址。我试图找出此信息,以便我可以通过 vagrant 虚拟机连接到 mysql 数据库,但在开箱即用的 laravel 应用程序内部的 .env 中使用该信息。有人可以帮忙吗?
tcp 0 0 0.0.0.0:3306 0.0.0.0:* 列表
最佳答案
在/etc/my.cnf 中,确保您具有以下配置:
1) 注释掉此行(如果存在),因为它会阻止外部访问
#skip-networking
2) 设置bind-address如下,如果设置为locahost,则只能进行本地连接:
bind-address=0.0.0.0
3) 重新启动 MySQL:
sudo service mysql restart
这应该可以。
如果没有,那么您可能需要考虑防火墙问题。如果您使用默认 iptables,则运行:
iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
要验证端口是否打开,您可以从外部主机(而不是虚拟机)运行:
nmap <vm-ip-address-here>
如果您没有看到 3306 打开,则可能存在其他不常见的网络问题。
关于php - 在 Vagrant 盒子之外连接到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44981838/