远程MySQL不使用Laravel Config

时间:2017-10-23 12:10:40

标签: php mysql laravel remote-access

我们的数据库服务器具有对具有root用户的所有本地ip的授予访问权限,并且可以通过所有本地IP中的cli访问它们。但是在我们的网络服务器(不同的机器)中,Laravel仍然无法连接到数据库,这里是错误:

Error PHP

我已经尝试清除缓存,重新安装Laravel(安装编辑器,生成新密钥等)将db config驱动器更改为sqli,它仍然错误连接远程数据库,但为什么数据库工作时我通过查询数据库修补那台机器,这太不寻常了。

3 个答案:

答案 0 :(得分:3)

如果您的MySQL数据库位于远程服务器上,则可能是以下问题之一:

防火墙阻止,具有MySQL服务的服务器可能位于防火墙后面,该防火墙设置为阻止对MySQL运行的端口的外部访问。

MySQL用户权限,如果MySQL服务不在防火墙后面,那么下一个原因可能是用户只有本地主机访问权限。

您应该尝试登录到远程服务器,并从那里通过一些shell命令连接到您的数据库以验证您实际可以。

答案 1 :(得分:0)

解决:php can't connect to mysql with error 13 (but command line can)

现在,Laravel可以通过在数据库服务器中执行:setsebool httpd_can_network_connect=1来连接数据库。但我仍然不明白为什么。有没有合理的解释?

答案 2 :(得分:0)

安全增强型Linux(SELinux)是一个Linux内核安全模块,它提供了一种支持访问控制安全策略的机制,包括美国国防部式的强制访问控制(MAC)。 / p>

httpd_can_network_connect(HTTPD服务) ::允许HTTPD脚本和模块连接到网络。

以root身份运行:

# setsebool -P httpd_can_network_connect 1