mysqli_connect(): (HY000/2002): 无法通过socket连接到本地MySQL服务器
Posted
技术标签:
【中文标题】mysqli_connect(): (HY000/2002): 无法通过socket连接到本地MySQL服务器【英文标题】:mysqli_connect(): (HY000/2002): Can't connect to local MySQL server through socket 【发布时间】:2015-05-06 02:22:33 【问题描述】:我需要帮助很糟糕...我在尝试使用 php 显示数据库时遇到此错误:
mysqli_connect(): (HY000/2002): 无法连接到本地 MySQL 服务器 通过 socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2) in /Applications/MAMP/htdocs/databases.php on line 7 数据库连接 失败:无法通过套接字连接到本地 MySQL 服务器 '/Applications/MAMP/tmp/mysql/mysql.sock' (2) (2002)
我已经尝试修复它好几天了,阅读了这个论坛上遇到相同问题的人的文章,并应用了修复程序(比如这个http://tinyurl.com/q4cpxzj),但完全没有运气。
这是我尝试过的一些步骤:进入 php.ini 文件并将套接字更改为 /tmp/mysql.sock(我也尝试将其更改为 /Applications/MAMP/tmp/mysql/mysql.sock 以查看发生了,不好)。
尝试对 /etc/my.cnf 文件执行相同的操作。不好。
尝试了一堆我什至不记得了的其他东西。
另外,我使用的是 Mac 10.10.2 并且安装了 MAMP。根据 MAMP,只有 Apache 正在工作(Apache 亮绿灯,MySQL 上没有任何东西),但我已经下载了 MySQL 并且根据 System Pref 它正在运行,尽管它不会让我出于某种原因停止 MySQL 服务器(当我单击停止它会停止然后自行重新启动)。
请帮忙...
如果重要,这里是 php:
<?php
// 1. Create a database connection
$dbhost = "localhost";
$dbuser = "widget_cms";
$dbpass = "*********";
$dbname = "widget_corp";
$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
// Test if connection succeeded
if(mysqli_connect_errno())
die("Database connection failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Databases</title>
</head>
<body>
</body>
</html>
<?php
// 5. Close database connection
mysqli_close($connection);
?>
【问题讨论】:
您是否从 MAMP 以外的其他软件包安装了 MySQL? 我从mysql网站安装了Mysql社区服务器。 安装后你是否在没有先编辑 php.ini 的情况下尝试过...也许 Mac 不同,但在 Windows 上,我从未编辑过 php.ini 来指定套接字。 如果您不编辑文件,我认为默认配置是该地址。但它没有用,所以我还是试着把它放进去。 【参考方案1】:刚刚找到解决方案!
我刚刚将 localhost 替换为 127.0.0.1。
奇怪的是,我想我以前试过这个。也许弄乱配置并重试它现在可以工作了。
【讨论】:
以上是关于mysqli_connect(): (HY000/2002): 无法通过socket连接到本地MySQL服务器的主要内容,如果未能解决你的问题,请参考以下文章
Mysql 错误:mysqli_connect(): (HY000/2002): Connection denied
mysqli_connect(): (HY000/2002): 无法通过socket连接到本地MySQL服务器
警告:mysqli_connect(): (HY000/1049): 仅在 mac 终端中的未知数据库
警告:mysqli_connect():(HY000/1045):用户'record'@'localhost'的访问被拒绝(使用密码:YES)[重复]