remote hy000 error python mysql mysql-error-2003

python - remote - error 2003(hy000): can''t connect to mysql server on



PyMySQL no puede conectarse a MySQL en localhost (4)

Dos conjeturas:

  1. Ejecutar mysqladmin variables | grep socket mysqladmin variables | grep socket para llegar a donde se encuentra el socket, e intente configurar una conexión como esta:

    pymysql.connect(db=''base'', user=''root'', passwd=''pwd'', unix_socket="/tmp/mysql.sock")

  2. Ejecutar mysqladmin variables | grep port mysqladmin variables | grep port y verifique que el puerto sea 3306. De lo contrario, puede configurar el puerto manualmente de la siguiente manera:

    pymysql.connect(db=''base'', user=''root'', passwd=''pwd'', host=''localhost'', port=XXXX)

Estoy tratando de conectarme a MySQL en localhost usando PyMySQL:

import pymysql conn = pymysql.connect(db=''base'', user=''root'', passwd=''pwd'', host=''localhost'')

pero (ambos en Python 2.7 y Python 3.2) me sale el error:

socket.error: [Errno 111] Conexión rechazada

pymysql.err.OperationalError: (2003, "No se puede conectar al servidor MySQL en ''localhost'' (111)")

Estoy seguro de que mysqld se está ejecutando porque puedo conectarme con el comando mysql o phpMyAdmin. Además, puedo conectarme usando MySQLdb en Python 2 con casi el mismo código:

import MySQLdb conn = MySQLdb.connect(db=''base'', user=''root'', passwd=''pwd'', host=''localhost'')

Parece que el problema está en el lado PyMySQL en lugar de MySQL, pero no tengo idea de cómo resolverlo.


Es necesario agregar el puerto a la conexión también. Intenta esto y funciona bien.

pymysql(Module Name).connect(host="localhost", user="root", passwd="root", port=8889, db="db_name")


Parece que cambiar localhost a 127.0.0.1 corrige el error, al menos en mi configuración. Si no es así, buscaría errores en la tcp sockets connection y, por supuesto, lo publicaría como un error en pymysql bugtrack.


Resolví el problema reemplazando localhost con 127.0.0.1 y cambiando la contraseña a mi contraseña de base de datos MYSQL como se muestra a continuación;

conn = pymysql.connect( host = ''127.0.0.1'', port = 3306, user = ''root'', passwd = ''XXXXXXXXX'', db = ''mysql'' )