首先,我发誓我已经看过了每一个引用这个错误的问题。几乎每个人提供的解决方案都是不同的,似乎没有人理解导致错误的系统原因。我和许多在网络上遇到这个常见问题的人需要的是对真正出了问题的地方的解释。
基本上,当我尝试跑步的时候:
python manage.py shell
from django.db import connection
cursor = connection.cursor()对于Django1.4和Python2.7.3,我得到以下错误: OperationalError:(2002,"Can't connect to local MySQL server error socket '/tmp/mysql.sock‘(2)")
我相信我的settings.py文件是正确的。我需要安装的一切都安装好了。下面是settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'database_name.mwb', # Or path to database file if using sqlite3.
'USER': 'user', # Not used with sqlite3.
'PASSWORD': 'PASS', # Not used with sqlite3.
'HOST': '/tmp/mysql.sock', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}}在经历了数周的网络搜寻,包括stackoverflow上的每一个答案之后,我得出的结论是,我遇到的真正问题是,即使安装了mysql,我的电脑上也没有mysql.sock文件。所以,真正的问题是我如何获得一个?答案可能简单得令人尴尬。
当我运行时:
cd /
sudo find . -name ".sock"我什么都看不到。是的,我已经在我的mac上安装了MySQL5.25。它肯定是安装好的:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
com.mysql.mysqld: Already loaded但是,运行:
mysql收益率:
-bash: mysql: command not found很长一段时间后,我发现了这个bug:http://bugs.mysql.com/bug.php?id=4174 ..那么解决方案是什么呢?
完全公开:我只是个程序员。我真的对计算机一无所知。所以,我对mysql、数据库或套接字一无所知。我想这个问题需要一个真正懂计算机的人来解决。尽管现在看起来很明显,但花了很长时间才将此错误表述为来自丢失的套接字。在网络上有这个错误的人中,99%的人似乎不是这样对待它的。
发布于 2012-07-12 08:36:35
您安装了mysql客户端,但没有安装为客户端处理连接的mysql服务器。您需要安装并运行mysql服务器。
发布于 2012-07-12 11:12:35
据我所知,这是两件事中的一件:
/tmp/mysql.sock作为其socket就2而言,我相信这是新安装的MySQL的默认设置,但检查一下也没什么坏处。尝试查看/etc/my.cnf的内容。检查是否有这样一行:socket=/path/to/socket -其中/path/to/socket是,因为它表示套接字的文件路径。如果存在这样的条目,并且文件路径与/tmp/mysql.sock不同,那么您就找到了问题所在。更改这一行,或者更改您的Django配置,使它们匹配。
注意:如果您找不到/etc/my.cnf,您可以自己创建它并添加适当的套接字设置(即只需添加socket=/tmp/mysql.sock行),以确保其配置正确。
就1而言,您可以按照here提供的说明操作,并确保您的MySql服务器正在运行。
祝好运!
发布于 2013-05-06 05:17:28
当我回答here的时候
使用
mysql_config --socket我发现了mysql套接字的位置,我应用了它:
'HOST': '/Applications/MAMP/tmp/mysql/mysql.sock',https://stackoverflow.com/questions/11443504
复制相似问题