当前位置: 首页 > 面试题库 >

无法通过套接字连接到本地MySQL服务器

袁奇玮
2023-03-14
问题内容

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

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

这到底是什么意思?


问题答案:

由于对该错误的调用引发了错误,mysql_real_escape_string()因此它意味着您没有mysql_connect()先调用该错误并将有效的数据库句柄传递给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";
   }
 }


 类似资料:
  • 问题内容: 错误2002(HY000):无法通过套接字’/var/run/mysqld/mysqld.sock’(2)连接到本地MySQL服务器 我尝试了在互联网上找到的所有内容,但是无法解决在Ubuntu 11.04上出现的问题。 我尝试了这些事情: 使用手动启动mysqld 使用启动mysqld 检查它是否正在使用并获得结果 在手动创建文件 授予用户权限 试图删除并重新安装,但仍然无法正常工作

  • 问题内容: 当我在测试套件中尝试连接到本地MySQL服务器时,它失败并显示以下错误: 但是,我始终可以通过运行命令行mysql程序连接到MySQL 。A 显示服务器正在运行,并 确认套接字存在。此外,如果在except该异常的子句中打开调试器,则可以使用完全相同的参数可靠地进行连接。 这个问题可以相当可靠地重现,但是似乎不是100%,因为每当我遇到一次蓝月亮时,我的测试套件就可以运行而不会遇到此错

  • 问题内容: 我在尝试连接mysql时遇到大问题。当我跑步时: 我有以下错误: 我的确在目录下。 在我有: 并且在我有: 我已经使用重新启动了Apache 但是我仍然有错误。 否则,我不知道这是否相关,但是当我得到时 问题答案: 如果您的文件my.cnf(通常在 / etc / mysql / 文件夹中)已正确配置为 您可以使用以下命令检查mysql是否正在运行: 尝试将您的权限更改为mysql文件

  • 问题内容: 当我尝试连接到mysql时出现以下错误: 有解决此错误的方法吗?背后的原因可能是什么? 问题答案: 您要连接到“ localhost”还是“ 127.0.0.1”?我注意到,当您连接到“ localhost”时,使用套接字连接器,但是当您连接到“ 127.0.0.1”时,则使用TCP / IP连接器。如果套接字连接器未启用/工作,则可以尝试使用“ 127.0.0.1”。

  • 已尝试所有职位以获取解决方案。错误2002(HY000):无法通过套接字“/var/run/mysqld/mysqld.sock”(2)连接到本地MySQL服务器 无法通过套接字“/var/MySQL/MySQL.sock”(38)连接到本地MySQL服务器 在后续工作中又发现了一个问题..sudo:有效的uid不是0,安装的sudo是否是setuid root? 所以对于这篇试过的跟帖 有谁能给

  • 问题内容: 当我尝试使用php mysqli类连接到mysql数据库时,出现此错误。使用以下代码: 为了安全起见,密码为*。 我创建了对外部IP地址和本地主机具有所有特权的用户。当我运行时:它会正确显示这两个用户。 我进行了一些研究,并使用此基准测试:https : //stackoverflow.com/a/2183134/1839439来查看它所连接的内容。事实证明它是唯一能够连接到和其为lo