php连接数据库mysql失败

问题相关代码,请勿粘贴截图

我的php

<?php
$servername = "172.16.66.142";
$username = "zabbix";
$password = "root.2020";
 
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
 
// 检测连接
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "连接成功";
?>


我的数据库

show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zabbix             |
+--------------------+
3 rows in set (0.00 sec)



运行结果及报错内容

curl http://172.16.66.142 -I
HTTP/1.0 500 Internal Server Error
Date: Tue, 15 Mar 2022 16:54:07 GMT
Server: Apache/2.4.44 (KylinSecOS) PHP/5.4.16
X-Powered-By: PHP/5.4.16
Connection: close
Content-Type: text/html; charset=UTF-8

我的解答思路和尝试过的方法
我想要达到的结果

这报错信息有点少了吧,就这点报错信息 看不出数据库哪里的问题,是不是抱错信息没有完整贴出来?

【步骤一】,建议这样尝试一波

  1. 在你的php文件目录下,执行命令php -S localhost:8999 你的php文件名

  2. 使用curl 访问,curl localhost:8999

第2步出来的结果才是你的期望结果或报错。如果不知道怎么排查可以贴出来报错,或者按照下述流程进行排查

【步骤二】
如果是数据库的错误的话,请按照如下步骤检查

  1. 你这个php文件和你的数据库是否在同一个服务器或电脑上
  2. 如果是的话,就把 php文件中的 第二行$servername='xxxx' 改成 $servername='localhost',然后按照上述的【步骤一】重新尝试一波,并忽略第3步
  3. 如果不是的话,请检查一下数据库的是否开启了远程授权,sql命令select user,host from mysql.user where user='zabbix';,当host列出现的是 % 的时候就代表开启了远程连接,如果没有的话,就需要开启远程授权,可以搜索一下mysql如何开启远程授权,或者参照 https://blog.csdn.net/qq_41834798/article/details/103541569 。开启远程授权之后再尝试上述的【步骤一】