我正在尝试在运行Apache的Web服务器上执行以下PHP脚本(称为test1.php)。该脚本尝试连接到MySQL服务器:
$myHost = "localhost";
$myUser = "anyone";
$myPwd = "1234";
$link = mysql_connect($myHost,$myUser,$myPwd);
if (!$link) {
die(mysql_errno().": ".mysql_error()."\n");
}
echo "Connected successfully.\n";
我一直收到这样的错误:
2002:无法通过socket'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(13)
但是,作为root或普通用户,我可以从shell成功执行上述脚本:
shell> php /var/www/html/test1.php
已成功连接。
如果有人对这个问题有任何暗示,我很困惑并感激不尽。非常感谢。
答案 0 :(得分:2)
在apache和CLI下执行<?php phpinfo();
并比较mysql.default_socket
值。
获得有效的套接字路径(来自CLI phpinfo)后 - 您可以为php.ini指定相同的内容,或者在代码中指定相同的内容:
$link = mysql_connect($myHost . ':/tmp/mysql.sock', $myUser, $myPwd);
答案 1 :(得分:0)
我将SELinux选项更改为Permissive后,现在可以正常工作了;这是强制执行。