Не удается подключиться к localhost, используя MySQLdb Python - PullRequest
17 голосов
/ 11 января 2011

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

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.

Ответы [ 3 ]

38 голосов
/ 03 сентября 2012

Мне удалось решить эту проблему, установив для моего хоста значение «127.0.0.1» вместо «localhost».

24 голосов
/ 11 января 2011

если ваш сокет 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

5 голосов
/ 11 января 2011

Ваша установка mysql, вероятно, поместила сокет где-нибудь еще.Вы можете настроить это в своих файлах conf mysql.

Возможно, вы захотите проверить этот похожий пост: Установка mysql на леопарде: «Не удается подключиться к локальному серверу MySQL через сокет»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...