首先,我发誓我已经看过每一个提到这个错误的问题。几乎每个人提供的解决方案都是不同的,似乎没有人理解错误的系统原因。我,以及网络上许多遇到这个常见问题的人,需要的是一个解释到底是什么出了问题。
基本上,当我试着跑的时候:python manage.py shell
from django.db import connection
cursor = connection.cursor()
对于Django 1.4和python 2.7.3,我得到以下错误:操作错误:(2002,“无法通过socket'/tmp/MySQL.sock'(2)连接到本地MySQL服务器”
我相信我的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 osx lion上安装了mysql 5.25。肯定安装了:sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
com.mysql.mysqld: Already loaded
但是,运行:mysql
收益率:-bash: mysql: command not found
完全公开:我只是个程序员。我对电脑一窍不通。所以,我对mysql、数据库或套接字一无所知。我认为这个问题需要一个真正懂电脑的人来解决。虽然现在看来很明显,但将这个错误表述为来自丢失的套接字需要很长时间。99%的人在网络上与这个错误似乎没有接近它的方式。