Ответ 1
Мне удалось решить эту проблему, установив мой хост на "127.0.0.1", а не на "localhost".
Я новичок в этом, поэтому, вероятно, имею неправильную терминологию, но когда я запускаю следующий script:
import MySQLdb
conn = MySQLdb.connect (host = 'localhost',
user = 'erin',
passwd = 'erin',
db = 'sec')
Я получаю сообщение об ошибке:
File "/Library/Python/2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/Library/Python/2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg/MySQLdb/connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")
В этом каталоге нет файла с именем mysql.sock, но я не знаю, что такое сокет, и как указать правильное местоположение для него с помощью модуля MySQLdb.
Мне удалось решить эту проблему, установив мой хост на "127.0.0.1", а не на "localhost".
если ваш mysql-сокет не помещен в /tmp/mysql.sock, вы можете указать его с помощью
conn = MySQLdb.connect (unix_socket = 'path_to_your_socket', host = 'localhost', user = 'erin', passwd = 'erin', db = 'sec')
edit: для mamp на macosx путь к сокету mysql должен быть чем-то вроде /Applications/MAMP/tmp/mysql/mysql.sock
Ваша установка mysql, вероятно, помещает сокет в другое место. Вы можете настроить это в своих файлах confs mysql.
Возможно, вы захотите проверить эту аналогичную запись: Установка mysql на leopard: "Невозможно подключиться к локальному серверу MySQL через сокет"