刘小麦_ 2024-07-15 14:59 采纳率: 33.3%
浏览 25
已结题

php_network_getaddresses: getaddrinfo failed: Name or service not known

用的是laravel 框架…
.env 文件是这样子的:

img

databases.php 里面是这样子的

img

然后部署在服务器上面运行的时候报错…
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

img

可是在本地运行很正常…这是怎么回事…我需要更改或者做别的什么配置吗?

  • 写回答

20条回答 默认 最新

  • 阿里嘎多学长 2024-07-15 14:59
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    从您提供的信息来看,这个问题通常是因为PHP在尝试连接到数据库服务器时无法解析主机名。以下是一些可能的解决方案:

    1. 检查.env文件:确保.env文件中的数据库配置是正确的。从您提供的截图来看,DB_HOST字段的值是new-,后面似乎被截断了,这可能是一个错误。它应该是数据库服务器的完整主机名或IP地址。

    2. 检查databases.php配置:您提供的第二个截图似乎是关于数据库配置的代码片段,但截图中没有显示完整信息。确保host, port, database, username, 和 password 等配置项都有正确的值。

    3. DNS解析问题:如果DB_HOST使用的是域名,确保服务器能够正确解析该域名。您可以尝试ping数据库服务器的域名来看是否能够解析到正确的IP地址。

    4. 防火墙和网络设置:检查服务器的防火墙设置,确保没有阻止到数据库服务器的连接。同时检查网络配置,确保服务器能够访问数据库服务器的网络。

    5. 数据库服务状态:在服务器上检查MySQL服务是否正在运行,并且监听在配置的端口上(默认是3306)。

    6. 使用命令行测试:使用命令行工具(如telnetmysql -h 你的数据库主机名 -u 用户名 -p)来测试从服务器到数据库的连接。

    7. 环境变量问题:如果.env文件中的配置使用了环境变量(如env('DB_HOST', '127.0.0.1')),确保这些环境变量在服务器上也正确设置。

    8. 更新Laravel配置:如果需要,更新config/app.php文件中的urltimezone等配置项,以确保它们与服务器环境匹配。

    9. 查看错误日志:检查Laravel和PHP的错误日志,可能会有更多关于错误的信息。

    10. 联系服务器管理员:如果您不确定如何进行某些配置或更改,联系服务器的管理员或技术支持以获取帮助。

    最后,您提供的第三个截图似乎是一个错误信息,但内容不完整。如果可能,请提供完整的错误信息,这将有助于更准确地诊断问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月16日
  • 赞助了问题酬金15元 7月15日
  • 创建了问题 7月15日