无法通过套接字连接到本地MySQL服务器 [英] Can't connect to local MySQL server through socket

查看:168
本文介绍了无法通过套接字连接到本地MySQL服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

上载或提交页面时,我的网站上出现以下错误:

I'm getting the following error on my site when I upload it or submit a page:

mysql_real_escape_string()[function.mysql-real-escape-string]:无法通过套接字'/var/lib/mysql/mysql.sock'(2)连接到本地MySQL服务器

mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

这到底是什么意思?

推荐答案

由于调用mysql_real_escape_string()会引发错误,因此它暗示您没有先调用mysql_connect()并将有效的数据库句柄传递给mysql_real_escape_string(或对mysql_connect()的调用失败).

Since the error is being thrown by the call to mysql_real_escape_string() it rather implies that you didn't call mysql_connect() first and pass a valid db handle to mysql_real_escape_string (or the call to mysql_connect() failed).

在某些情况下,mysql扩展将尝试使用php.ini中的默认设置自动连接,如果这些设置不可用,则故障转移至my.cnf-显然无效.或者可能是设置有效,但是mysqld没有运行.

In some circumstances, the mysql extension will attempt to connect automatically using the default settings in php.ini, failing over to my.cnf if these are not available - which obviously are not valid. Or it may be that the settings are valid but the mysqld is not running.

您有成功连接到数据库的脚本吗?

Have you got scripts which are connecting to the database successfully?

您有该数据库的用户名和密码吗?

Do you have a username and password for the database?

尝试:

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";
   }
 }

这篇关于无法通过套接字连接到本地MySQL服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆