0

我正在使用 apache 运行基于 django 的 Web 应用程序。我可以从 python 和 linux shell 连接到 mysql,但是,当我运行服务器时,我收到以下错误。我在哪里做错了?

OperationalError at /

(2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)")

Request Method:     GET
Request URL:    http://dev.ls.co.uk/
Django Version:     1.3
Exception Type:     OperationalError
Exception Value:    

(2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'   (2)")

Exception Location:     build/bdist.linux-x86_64/egg/MySQLdb/connections.py in __init__, line 187
Python Executable:  /usr/bin/python
Python Version:     2.4.3
4

2 回答 2

1

根据mysql.com上的这个线程:

这里有两件事可能出错:

  1. 您无权访问目录 /var/lib/mysql/whatever.sock 因为 mysql 是该文件夹的所有者或
  2. /path/whatever.sock 不存在。

首先,你应该知道 apache 运行的用户是什么:trytop命令找出用户。然后,使用id thatusername命令来确定它在哪个组中。

然后,您可以阅读有关调试此类问题的文章

于 2012-10-24T12:13:16.280 回答
1

套接字文件不存在。您需要重新启动 mysqld.service 试试这个:

systemctl 重启 mysqld.service

你有没有以不同的模式启动mysql?如果是这样,你需要杀死mysql的进程并使用上面的命令。grep for mysql进程在进程列表中查看进程id并杀死进程

杀死 process_id

并发出先前的命令以重新启动服务

于 2012-10-24T19:00:21.217 回答