如何解决“Can't connect to local MySQL server through socket”


How to solve "Can't connect to local MySQL server through socket"

这是我的配置文件:

$mysql_hostname = "localhost";
$mysql_user = "xyz";
$mysql_password = "abc";
$mysql_database = "mno";
$IT = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Opps some thing went wrong");
mysql_select_db($mysql_database, $IT) or die("Opps some thing went wrong");

下面是我从中得到的警告:

警告:mysql_connect() [function。MySQL -connect]:无法通过socket '/var/lib/MySQL/MySQL连接到本地MySQL服务器。

第13行/home/content/03/10531303/html/iqamah.org/config.php中的Sock ' (2)

我该如何解决这个问题?

请指定您正在运行的系统。如果凭据正常,这可能是mysql服务器的问题。如果您使用的是linux,请检查这一行是否在控制台上返回一些内容。如果没有,说明服务器没有运行:

# netstat -apn | grep mysql

你也可以试着在这里连接到mysql,这样你就可以检查你的凭据了:

# mysql -h localhost -u user database

如果你在windows上,检查服务是否正在运行:

  1. WindowsKey + R
  2. 类型services.msc
  3. 检查msyql服务是否运行

我也有同样的问题

    我验证了mysql。袜子存在
  1. 在database.php配置文件中更新本地主机为127.0.0.1。 (user166390评论)
  2. 我还在admin/expressionengine/中为日志创建了一个文件夹文件夹
  3. 在config.php文件中配置错误日志级别
  4. 以及config.php文件
  5. 中log文件夹的路径

希望这能帮助任何有同样问题的人。特别是当日志文件夹不存在时,

只有当连接参数错误时才会出现错误,请确保以下凭据正确

$mysql_hostname = "localhost";
$mysql_user = "xyz";
$mysql_password = "abc";

如果无法连接数据库,则意味着执行过程中的某个地方出现了问题。修改主机名、用户名、密码和数据库名。然后确保数据库是否真的在您的服务器上,其中包含您写入代码的用户数据-使用终端或类似的方式登录…

但是on line 13意味着,你必须在第13行搜索问题。检查这一行

首先检查你的数据库是否真的在监听;通过调用

来实现
netstat -a 

你应该看到这样的内容

TCP    0.0.0.0:3306           MyComputer:0               LISTEN

如果在端口3306上没有看到监听进程,则说明数据库没有(正确地)启动或使用其他端口。仔细检查你的环境。如果它是一个WAMP/LAMP系统,你可以检查你的管理页面phpinfo()部分(mysqli部分)

如果您的端口与标准端口不同,请尝试添加适当的端口,例如

$link = mysql_connect('example.com:3331', 'mysql_user', 'mysql_password');

在阅读了这里的一些好的建议之后。我的工作对我来说很好。我试着删除"localhost"并添加127.0.0.1,它像魔术一样工作