我正尝试在运行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:无法通过套接字'/var/lib/ MySQL /mysql.sock‘连接到本地mysql服务器(13)
但是,作为root用户或普通用户,我可以从shell成功执行上面的脚本:
shell>php /var/www/html/test1.php
连接成功。
我很困惑,如果有人对这个问题有任何提示,我将不胜感激。非常感谢。
发布于 2010-11-16 10:45:29
在apache和CLI下执行<?php phpinfo();,并比较mysql.default_socket的值。
在您获得有效的套接字路径(从CLI phpinfo中)之后-您可以为php.ini指定相同的路径,或者直接在代码中指定:
$link = mysql_connect($myHost . ':/tmp/mysql.sock', $myUser, $myPwd);发布于 2010-11-16 15:35:43
在我将SELinux选项更改为Permissive后,它现在可以工作了;它是强制的。
https://stackoverflow.com/questions/4190765
复制相似问题