当我上传或提交页面时,我的网站上出现以下错误:
mysql_real_escape_string()[function.mysql-real-escape-string]:无法通过套接字'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(2)
这意味着什么?
sym*_*ean 13
由于调用mysql_real_escape_string()会引发错误,这意味着您首先不调用mysql_connect()并将有效的db句柄传递给mysql_real_escape_string(或调用mysql_connect()失败).
在某些情况下,mysql扩展将尝试使用php.ini中的默认设置自动连接,如果这些设置不可用则会故障转移到my.cnf - 这显然是无效的.或者可能是设置有效但mysqld未运行.
您是否已成功连接到数据库的脚本?
你有数据库的用户名和密码吗?
尝试:
check_running();
$user=''; // fill in your details
$password=''; // fill in your details
$hosts=array(
'localhost', '127.0.0.1', $_SERVER['HTTP_HOST'], $_SERVER['SERVER_ADDR']
);
foreach ($hosts as $addr) {
try_con($addr, $user, $password);
try_con($addr . ':3306', $user, $password);
}
function try_con($host, $user, $password)
{
$dbh=mysql_connect($host, $user, $password);
if ($dbh) {
print "Connected OK with $host, $user, $password<br />\n";
} else {
print "Failed with $host, $user, $password<br />\n";
}
}
function check_running()
{
// this assumes that you are using Apache on a Unix/Linux box
$chk=`ps -ef | grep httpd | grep -v grep`;
if ($chk) {
print "Checking for mysqld process: " . `ps -ef | grep mysqld | grep -v grep` . "<br />\n";
} else {
print "Cannot check mysqld process<br />\n";
}
}
Run Code Online (Sandbox Code Playgroud)
HTH
C.
归档时间: |
|
查看次数: |
17741 次 |
最近记录: |