程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP 无法在没有 root 用户的情况下解析主机以连接 MySQL 数据库,但 IP 地址有效大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决php 无法在没有 root 用户的情况下解析主机以连接 MySQL 数据库,但 IP 地址有效?

开发过程中遇到php 无法在没有 root 用户的情况下解析主机以连接 MySQL 数据库,但 IP 地址有效的问题如何解决?下面主要结合日常开发的经验,给出你关于php 无法在没有 root 用户的情况下解析主机以连接 MySQL 数据库,但 IP 地址有效的解决方法建议,希望对你解决php 无法在没有 root 用户的情况下解析主机以连接 MySQL 数据库,但 IP 地址有效有所启发或帮助;
@H_944_3@define('DB_HOST','masterdb');
define('DB_PORT','3306');
define('DB_DBname','example');
define('DB_DRIVER','MysqL');
define('DB_USERname','luna');
define('DB_password','alfa');

我在 config.php 文件中设置了 MysqL 连接参数,并尝试使用它连接到 MysqL 服务器。

@H_944_3@cat /etc/hosts
55.55.55.55  masterdb
@H_944_3@Ping masterdb
55.55.55.55

如果我尝试连接 MysqL 客户端,我可以毫无问题地连接它。

@H_944_3@mysqL -h masterdb --port  3306 -uluna -p

当我尝试从浏览器调用页面时

@H_944_3@curl "192.168.1.1/login.php"

array(2) {
  ["message"]=>
  String(43) "sqlSTATE[HY000] [2002] Connection timed out"

但是如果我更改参数以使用 IP 地址,它会起作用。

@H_944_3@define('DB_HOST','55.55.55.55');

curl "192.168.1.1/login.php"

connection success!!!


@H_530_6@mysqL

@H_944_3@show global variables like '%resolve%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| skip_name_resolve | ON    |
+-------------------+-------+

是否有任何 php.ini 设置?

终于,我明白了它不工作的原因,但我还没有找到解决方案。

当我使用“root”用户运行 php 时,它可以连接解析主机并成功,但如果我使用 php-fpm 用户(Nginx,nobody),它会失败

@H_944_3@sudo -u Nginx  /usr/bin/php70 /var/www/HTML/abc.com/test.php
fails
sudo -u root  /usr/bin/php70 /var/www/HTML/abc.com/test.php
pass

解决方法

@H_944_3@chmod 644 /etc/hosts

就是答案

大佬总结

以上是大佬教程为你收集整理的PHP 无法在没有 root 用户的情况下解析主机以连接 MySQL 数据库,但 IP 地址有效全部内容,希望文章能够帮你解决PHP 无法在没有 root 用户的情况下解析主机以连接 MySQL 数据库,但 IP 地址有效所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。