Установка mysql на леопарде: «Не удается подключиться к локальному серверу MySQL через сокет»

ичок в этом, поэтому, вероятно, у меня неправильная терминология, но когда я запускаю следующий скрипт:

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.

 akuzminsky03 мар. 2014 г., 22:51
Вы можете сэкономить больше времени, если заметите код ошибки (2) в сообщении об ошибке. 2 означает, что файл не найден: # perror 2 Код ошибки ОС 2: Нет такого файла или каталога

Ответы на вопрос(1)

установив мой хост на «127.0.0.1», а не «localhost».

 user258040128 окт. 2014 г., 17:20
да, это работает и для меня,
 Yuda Prawira29 авг. 2017 г., 09:25
Я проверил и обнаружил, что "localhost" будет быстрее, чем "127.0.0.1", потому что "localhost" использует локальный unix_socket. поэтому я предпочитаю римский ответ.
 IdeoREX16 июл. 2013 г., 19:45
F *** Я! Спасибо, Мэтт. Я застрял на этом в течение 3 дней, и вы были окончательное решение
 johnharris8520 окт. 2012 г., 18:01
Вы когда-нибудь выясняли, почему это было? У меня это тоже сработало.
 daviewales28 июн. 2013 г., 09:43
Это работает, потому что, когда вы указываетеlocalhost, он пытается подключиться через сокеты Unix, тогда как при подключении через127.0.0.1 он пытается подключиться через стандартный TCP / IP. Однако, если вы укажетеlocalhost, то он будет использовать по умолчанию/tmp/mysql.sock если не указано иное.

Ваш ответ на вопрос