まず、このエラーを参照するすべての質問を確認したことを誓います。誰かが提供するほぼすべての解決策は異なり、エラーの体系的な理由を誰も理解していないようです。私、そしてこの一般的な問題に遭遇するWeb上の多くの人々が必要としているのは、実際に何が間違っているのかを説明することです。
基本的に、私が実行しようとすると:
python manage.py shell
from django.db import connection
cursor = connection.cursor()
Django1.4とpython2.7.3では、次のエラーが発生します:OperationalError:(2002、"ソケット'/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.
}}
何週間にもわたってWebを精査し、stackoverflowのすべてを含めて答えを探した後、私が経験している本当の問題は、mysqlがインストールされていても、コンピューターにmysql.sockファイルがないことであるという結論に達しました。だから、本当の問題はどうやってそれを手に入れるのかということです。答えは恥ずかしいほど単純かもしれません。
私が走るとき:
cd /
sudo find . -name ".sock"
何も得られません。そして、はい、私は私のmacosxlionにmysql5.25をインストールしました。それは間違いなくインストールされています:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
com.mysql.mysqld: Already loaded
ただし、実行中:
mysql
収量:
-bash: mysql: command not found
久しぶりに、このバグを見つけました:http: //bugs.mysql.com/bug.php ?id=4174 ..それで、解決策は何ですか?
完全な開示:私はただのプログラマーです。私は本当にコンピューターについて何も知りません。だから、私はmysql、データベース、またはソケットについて何も知りません。この質問には、コンピューターを本当に理解している人が修正する必要があると思います。今では明らかなようですが、このエラーをソケットの欠落によるものとして定式化するのに長い時間がかかりました。このエラーのあるWeb上の99%の人は、この方法でそれに近づいていないようです。