php - 在 Vagrant 盒子之外连接到 MySQL

标签 php mysql linux vagrant virtual-machine

我尝试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/

相关文章:

php - 自注册组件/插件的设计模式

php - MySQL 根据其他表值从表中选择

mysql - 如何使用 SQL 将具有条件条目的列表连接到一个字符串

javascript - intel xdk-将 html 连接到 php 以使用 mysqli 将值保存到数据库

ruby - Cronjob 80% 的时间都不会运行

php - PHP-XCache 将数据保存在哪里?

php - 更改 PayPal 中默认字段的文本?

mysql - golang mysql DESCRIBE表导致driver.Value type nil错误

linux - Debian V4L2 复合视频 USB 捕获器

php - 注入(inject)依赖项 - Doctrine : Multiple repositories vs single entity manager