
Anteriormente tuve un problema relacionado con los archivos .htacess, pero lo solucioné, pero en el proceso pensé que sería bueno reinstalar Apache2. Eso solucionó todos los problemas del servidor web, pero cuando intenté usar MySQL, me dio este error:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Por favor ayuda :O. Estoy de acuerdo con rehacer todas las bases de datos, pero no puedo hacer que MySQL funcione, así que básicamente no puedo hacer nada con mi servidor hasta que esto se solucione.
Gracias de antemano :)
Respuesta1
Cuando tengo ese problema lo que hago son 3 cosas:
Compruebe si el proceso mysql se está ejecutando. A
ps -e
debería funcionar. A mí no me funcionó hacer unservice mysql stop
. Tuve que hacerlo manualmentekillall mysql
.Se verificó para asegurarse de que my.cnf apuntara correctamente a donde debería estar el archivo socket. A veces pasa que en una configuración tienes /var/run... pero luego en el archivo de configuración dice otra cosa. Lo mismo ocurre con el lugar donde debería estar el archivo my.conf. De forma predeterminada, lo ve en /etc/mysql/my.cnf, pero en otros casos puede estar en /etc/my.cnf (y la carpeta /etc/mysql no debería estar allí para confundir con 2 fuentes de configuración de mysql)
Por último, asegúrese de que el directorio donde se encuentra el archivo socket tenga los permisos correctos.
La mayoría de las veces 1 será suficiente. Me pasa, al menos a mí cuando hago alguna configuración y por error recargo mysql con una mala configuración.
Respuesta2
El error (2002) No se puede conectar a... normalmente significa que no hay ningún servidor MySQL ejecutándose en el sistema. Intente reiniciar.
~$ sudo service mysql restart
mysql start/running, process 3912
o detenerlo y luego iniciarlo
:~$ sudo service mysql stop
mysql stop/waiting
~$ sudo service mysql start
mysql start/running, process 3994
También debe verificar que el puerto TCP/IP que está utilizando no haya sido bloqueado por un firewall o un servicio de bloqueo de puertos.leer más aquí.
Verifique si el servidor se está ejecutando en ese host ejecutando sudo telnet some_host 3306
y presionando la tecla Enter un par de veces. (3306 es el número de puerto MySQL predeterminado. Cambie el valor si su servidor está escuchando en un puerto diferente). Si hay un servidor MySQL ejecutándose y escuchando el puerto,Debería recibir una respuesta que incluya el número de versión del servidor.. Si recibe un error como telnet: Unable to connect to remote host: Connection refused
, entoncesno hay ningún servidor ejecutándose en el puerto dado.
el mio por ejemplo (en español):
~$ sudo netstat -a | grep mysql
tcp 0 0 localhost:mysql *:* ESCUCHAR
unix 2 [ ACC ] FLUJO ESCUCHANDO 18740 /var/run/mysqld/mysqd.sock
EL MIO FUNCIONA: PERO VEMOS HACIENDO UN TELNET A MI LOCALHOST. =D
~$ sudo telnet localhost 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
E
5.1.61-0ubuntu0.11.10.1"]+Ya]-gQO{<X)_&<:NXConnection closed by foreign host.
marcelo@acer:~$