PHP mysqli_connet 以localhost作为hostname 连接MySQL失败

孜然i 2020-09-02 05:54:54
初入Linux web服务器搭建,准备代码已测试搭建情况,代码如下:

<?php
$link=mysqli_connect('localhost','root','Ali123_123');
if(!$link){
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errorno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() .PHP_EOL;
exit;
}

echo "Success: A proper connection to MySQL was made!" . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

mysqli_close($link);
?>


CLI执行结果:

web访问结果:
Error: Unable to connect to MySQL. Debugging errorno: 2002 Debugging error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
php socket 配置:

MySQL socket 路径:

mysql root 权限:


为什么会有这种结果呢,该如何解决~
麻烦相助,多谢~
...全文
213 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
孜然i 2020-09-03
  • 打赏
  • 举报
回复
引用 1 楼 下雨的声音丶 的回复:
你这个cli 模式下可以,web服务器上又不得行。会不会是权限的问题? 你切换到PHP运行的 角色 (一般是www)下试一试cli 模式呢? 没遇到过这种情况,只有你自己试一试
谢谢您的回复。 服务器一直都在root下操作的,没有创建其他的用户。 我试着创建了一个其他的用户并分配另外的属组,结果还是相同的。 我尝试使用php_sapi_name()获取PHP的运行方式,结果如下:
[root@iZm5ej6knwmfwy1312s25dZ ~]# curl -v  localhost
* About to connect() to localhost port 80 (#0)
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Thu, 03 Sep 2020 04:47:32 GMT
< Server: Apache/2.4.6 (CentOS) PHP/7.2.33
< X-Powered-By: PHP/7.2.33
< Content-Length: 179
< Content-Type: text/html; charset=UTF-8
<
Error: Unable to connect to MySQL.
Debugging errorno: 2002
Debugging error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
PHP_Sapi_Name: apache2handler
* Connection #0 to host localhost left intact
[root@iZm5ej6knwmfwy1312s25dZ ~]# php /var/www/html/index.php
Success: A proper connection to MySQL was made!
Host information: Localhost via UNIX socket
PHP_Sapi_Name: cli
发现另一个是apache2handler,这里会不会存在什么问题。 另文件的权限:
-rw-r--r-- 1 root root 578 9月   3 12:47 /var/www/html/index.php
srwxrwxrwx 1 mysql mysql 0 9月   2 09:33 /tmp/mysql.sock
下雨的声音丶 2020-09-03
  • 打赏
  • 举报
回复
你这个cli 模式下可以,web服务器上又不得行。会不会是权限的问题? 你切换到PHP运行的 角色 (一般是www)下试一试cli 模式呢? 没遇到过这种情况,只有你自己试一试

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧