No se puede conectar a localhost usando MySQLdb de Python

Soy nuevo en esto, así que probablemente tenga una terminología incorrecta, pero cuando ejecuto el siguiente script:

import MySQLdb conn = MySQLdb.connect (host = 'localhost', user = 'erin', passwd = 'erin', db = 'sec') 

Me sale el error:

  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)") 

No hay ningún archivo llamado mysql.sock en ese directorio, pero no sé qué es un socket o cómo especificar la ubicación correcta para él usando el módulo MySQLdb.

Logré resolver esto configurando mi host en “127.0.0.1” en lugar de “localhost”.

Si su socket mysql no está ubicado en /tmp/mysql.sock, puede especificarlo con

 conn = MySQLdb.connect (unix_socket = 'path_to_your_socket', host = 'localhost', user = 'erin', passwd = 'erin', db = 'sec') 

edit: para mamp en macosx la ruta del socket mysql debería ser algo como /Applications/MAMP/tmp/mysql/mysql.sock

Tu instalación de mysql probablemente ponga el socket en otro lugar. Puedes configurarlo en tus archivos conf de mysql.

Es posible que desee consultar esta publicación similar: Instalar mysql en leopard: “No se puede conectar al servidor MySQL local a través de un socket”