error: ‘No se puede conectar al servidor MySQL local a través del socket’ /var/run/mysqld/mysqld.sock ‘(2)’

Mi problema comenzó cuando no pude iniciar sesión como root en mi instalación de MySQL. Estaba intentando ejecutar mysql sin contraseñas activadas … pero cada vez que ejecutaba el comando

# mysqld_safe --skip-grant-tables & 

Nunca recuperaría la respuesta. Intentaba seguir estas instrucciones para recuperar la contraseña .

La pantalla se ve así:

 root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables 120816 11:40:53 mysqld_safe Logging to syslog. 120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 

y no recibo un mensaje para comenzar a escribir los comandos SQL para restablecer la contraseña.

Cuando lo mato presionando CTRL + C , aparece el siguiente mensaje:

 error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)' Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists! 

Si vuelvo a intentar el comando y lo dejo el tiempo suficiente, obtengo la siguiente serie de mensajes:

 root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog. 120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended [1]+ Done mysqld_safe --skip-grant-tables root@jj-SFF-PC:/run/mysqld# 

Pero luego, si bash iniciar sesión como root, hago:

 # mysql -u root 

Aparece el siguiente mensaje de error:

 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

Comprobé y el archivo /var/run/mysqld/mysqld.sock no existe. La carpeta sí, pero no el archivo.

Además, no sé si esto ayuda o no, pero corrí find / -name mysqld y se me ocurrió:

 /var/run/mysqld - folder /usr/sbin/mysqld - file /run/mysqld - folder 

Soy nuevo en Linux y MySQL, así que no sé si esto es normal o no. Pero incluyo esta información por si acaso me ayuda.

Finalmente decidí desinstalar y volver a instalar mysql.

 apt-get remove mysql-server apt-get remove mysql-client apt-get remove mysql-common apt-get remove phpmyadmin 

Después de volver a instalar todos los paquetes en el mismo orden que el anterior, durante la instalación de phpmyadmin, recibí el mismo error:

 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

Así que intenté nuevamente desinstalar / reinstalar. Esta vez, después de desinstalar los paquetes, también mysql.bad manualmente todos los archivos y directorios de mysql.bad a mysql.bad en sus respectivas ubicaciones.

 /var/lib/mysql /var/lib/mysql/mysql /var/log/mysql /usr/lib/perl5/DBD/mysql /usr/lib/perl5/auto/DBD/mysql /usr/lib/mysql /usr/bin/mysql /usr/share/mysql /usr/share/dbconfig-common/internal/mysql /etc/init.d/mysql /etc/apparmor.d/abstractions/mysql /etc/mysql 

Luego traté de volver a instalar mysql-server y mysql-client nuevamente. Pero me he dado cuenta de que no me pide una contraseña. ¿No se supone que debe pedir una contraseña de administrador?

Para encontrar todos los archivos de socket en su sistema, ejecute:

 sudo find / -type s 

Mi sistema de servidor Mysql tenía el socket abierto en /var/lib/mysql/mysql.sock

Una vez que encuentre dónde se está abriendo el socket, agregue o edite la línea en su archivo /etc/my.cnf con la ruta al archivo socket:

 socket=/var/lib/mysql/mysql.sock 

En ocasiones, el script de inicio del sistema que inició el ejecutable de la línea de comando especifica un indicador --socket=path . Esta bandera podría anular la ubicación my.cnf, y eso daría como resultado que no se encuentre un socket donde el archivo my.cnf indica que debería estar. Luego, cuando intente ejecutar el cliente de línea de comandos mysql, leerá my.cnf para encontrar el socket, pero no lo encontrará, ya que se desvía del lugar donde el servidor creó uno. Entonces, a menos que te importe dónde reside el socket, simplemente cambiar el my.cnf para que coincida debería funcionar.

Entonces, detén el proceso mysqld. Cómo lo hará variará según el sistema.

Si es superusuario en el sistema Linux, intente uno de los siguientes si no conoce el método específico que utiliza su instalación Mysql:

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • Algunos sistemas no están configurados para tener una forma elegante de detener mysql (o por alguna razón mysql no responde) y puedes forzar la terminación de MySQL con:
    • Un paso: pkill -9 mysqld
    • Dos pasos (menos preferido):
      • Encuentre la identificación del proceso de mysql con pgrep mysql o ps aux | grep mysql | grep -v grep ps aux | grep mysql | grep -v grep
      • Suponiendo que la identificación del proceso es 4969 termine con kill -9 4969

Después de hacer esto, es posible que desee buscar un archivo pid en /var/run/mysqld/ y eliminarlo

Asegúrese de que los permisos en su socket sean tales que cualquier usuario que esté ejecutando mysqld pueda leer / escribir en él. Una prueba fácil es abrirlo para lectura / escritura completa y ver si todavía funciona:

 chmod 777 /var/run/mysqld/mysqld.sock 

Si eso soluciona el problema, puede adaptar los permisos y la propiedad del socket según sea necesario en función de su configuración de seguridad.

Además, el usuario que ejecuta el proceso mysqld debe poder acceder al directorio en el que reside el socket.

Prueba este comando

 sudo service mysql start 

Este error ocurre debido a múltiples instalaciones de mysql. Ejecute el comando:

 ps -A|grep mysql 

Mata el proceso usando:

 sudo pkill mysql 

y luego ejecuta el comando:

 ps -A|grep mysqld 

También mate este proceso ejecutando:

 sudo pkill mysqld 

Ahora que está completamente configurado, solo ejecute los siguientes comandos:

 service mysql restart mysql -u root -p 

Tener muy buen trabajo mysql otra vez

La solución es mucho más fácil.

  1. Primero, debe localizar (en la Terminal con “sudo find / -type s”) donde se encuentra su archivo mysql.sock . En mi caso, estaba en /opt/lampp/var/mysql/mysql.sock
  2. Fire up Terminal y emite sudo Nautilus
    Esto inicia su administrador de archivos con privilegios de superusuario
  3. Desde Nautilus navega hasta donde se encuentra tu archivo mysql.sock
  4. Haga clic derecho en el archivo y seleccione Hacer enlace
  5. Cambie el nombre del archivo de enlace a mysqld.sock luego haga clic con el botón derecho en el archivo y mysqld.sock
  6. Vaya a /var/run y cree una carpeta llamada mysqld e mysqld
  7. Ahora haz clic derecho y pega el archivo de enlace
  8. Voila! Ahora tendrá un archivo mysqld.sock en /var/run/mysqld/mysqld.sock 🙂

Solo necesita iniciar el servicio MySQL después de la instalación:

Para Ubuntu:

 sudo service mysql start; 

Para CentOS o RHEL:

 sudo service mysqld start; 

De acuerdo, copie y pegue estos códigos: esto debe hacerse en la terminal, dentro de un servidor, cuando su base de datos mysql no está instalada correctamente, y cuando recibe este error: ‘No se puede conectar al servidor MySQL local a través del socket’ / var / run / mysqld / mysqld.sock ‘(2)’.

Detener MySql

 sudo /etc/init.d/mysqld stop 

Reiniciarlo o iniciarlo

 sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start 

Haga un enlace como este y entréguelo al sistema

 ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 

Ejecute una instalación segura que guíe todo el proceso que necesita para configurar mysql

 /usr/bin/mysql_secure_installation 

Me enfrenté al mismo error y descubrí que se debía a la actualización de los paquetes, así que después de reiniciar mi sistema resolví el error.

Creo que debido a la actualización de sql libraries / packages ese error ocurrió, así que intente esto si está realizando alguna actualización 🙂

Hay un error en Ubuntu con MySQL 5.6 y 5.7 donde var/run/mysqld/ desaparecería cada vez que el servicio MySQL se detuviera o se reiniciara. Esto evita que MySQL se ejecute en absoluto. Encontré esta solución, que no es perfecta, pero al menos la ejecuta después de detener / reiniciar:

 mkdir /var/run/mysqld/ chown mysqld /var/run/mysqld/ 

Hay muchas razones para este problema, pero a veces solo reinicia el servidor mysql, solucionará el problema.

 sudo service mysql restart 

La respuesta del paso de carga de usuario funcionó para mí. A veces es necesario editar el archivo en /etc/mysql/my.cnf agregar línea al cliente

 [client] password = your_mysql_root_password port = 3306 host = 127.0.0.1 socket = /var/lib/mysql/mysql.sock 

* Error: ‘No se puede conectar al servidor MySQL local a través del socket’ /var/run/mysqld/mysqld.sock ‘(2)’

soluciones

finalmente desinstale y vuelva a instalar mysql. **

  • sudo apt-get eliminar mysql-server
  • sudo apt-get eliminar mysql-client
  • sudo apt-get eliminar mysql-common
  • sudo apt-get eliminar phpmyadmin

luego instalar de nuevo por

  • sudo apt-get install mysql-server-5.6

Después de esta operación, se usarán 164 MB de espacio adicional en el disco.

  • ¿Quieres continuar? [S / n] Y presione YES para instalaciones completas

…… …….

  • Por fin obtendrás estas líneas …

    Configurando libhtml-template-perl (2.95-1) …

    Configurando mysql-common-5.6 (5.6.16-1 ~ exp1) … Triggers de procesamiento para libc-bin (2.19-0ubuntu6) Triggers de procesamiento para ureadahead (0.100.0-16) …

  • Y entonces

    root @ ubuntu1404: ~ # mysql -u root -p (para cada contraseña primero debes usar)

  • Introducir la contraseña:

  • Nota: la contraseña introducida debe ser la misma que la contraseña de mysql del tiempo de instalación (como .root, system, admin, rahul, etc.)

    Luego escribe

  • UTILIZAR rahul_db (nombre de la base de datos);

Gracias.**

puedes encontrar mysqld.sock en /var/run/mysqld si ya has instalado mysql-server en sudo apt-get install mysql-server

Tal vez alguien que enfrenta este problema. Estoy usando Mysql Workbench en Ubuntu 14 y obtuve este error.

 mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect 

Encuentre su archivo de socket ejecutando sudo find / -type s , en mi caso fue /run/mysqld/mysqld.sock

Entonces, acabo de crear un enlace a este archivo en el directorio tmp .

 sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

en /etc/my.cnf agrega estas líneas:

 [client] socket=/var/lib/mysql/mysql.sock <= this path should be also same as is[mysqld] 

Y reinicie el servicio con: service mysql restart

esto funcionó para mí

En mi caso, se estaban ejecutando dos procesos mysqld. Mataron los procesos opcionales usando pkill -9 mysqld

Si tiene muchas bases de datos y tablas en su sistema, y ​​si tiene innodb_file_per_table configurado en my.cnf, entonces su servidor mysql podría haberse quedado sin objetos / archivos abiertos (o más bien los descriptores de estos objetos) Establecer un nuevo máximo número con

 open-files-limit = 2048 

y reinicia mysql. Este enfoque puede ayudar cuando el socket no se crea en absoluto, pero realmente este no es el problema real, hay un problema subyacente.

Acabo de tener este problema en Ubuntu 14.10

Resulta que mysql-server ya no estaba instalado (de alguna manera había sido eliminado) pero no podía simplemente instalarlo porque había algunos paquetes rotos y problemas de dependencia / conflictos.

Al final tuve que volver a instalar mysql

 sudo apt-get remove mysql-client sudo apt-get install mysql-server 

Esto ya se mencionó un par de veces, pero esto funcionó de inmediato para mí:

servicio mysql restart

Usando XAMPP en ubuntu:

  1. Crea una carpeta llamada mysqld dentro del directorio / var / run . Puede lograr eso usando el comando sudo mkdir /var/run/mysqld .

  2. Cree un enlace simbólico al archivo mysql.sock creado por el servidor XAMPP cuando se inicia. Puede usar el comando sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock .

Nota: El archivo mysql.sock se crea cuando el servidor se inicia y se elimina cuando se detiene el servidor, por lo que a veces el enlace que creó podría parecer estar roto, pero debería funcionar siempre que haya iniciado el servidor utilizando sudo /opt/lampp/lampp start o cualquier otro medio.

  1. Inicie el servidor si aún no se está ejecutando e intente ejecutar su progtwig nuevamente.

¡Buena suerte! Espero que te salgas con la tuya esta vez.

Cambiar el host a 127.0.0.1 funcionó para mí.

Edite el archivo en /etc/mysql/my.cnf y agregue la línea mencionada a continuación a la sección: client

 [client] port = 3306 host = 127.0.0.1 socket = /var/lib/mysql/mysql.sock 

Después de que haya terminado con eso. Ejecute el siguiente comando.

 sudo service mysql start 

Ejecuto mi MySQL en una máquina virtual en Ubuntu. Entonces, lo que sucedió fue cuando reinicié mi host y la máquina virtual. La dirección IP había cambiado. Había configurado mysql para ejecutar en IP 192.168.0.5 y ahora debido a la asignación dinámica de IP, mi nueva IP era 192.168.0.8

Si tiene el mismo problema simplemente verifique su ip con el comando ifconfig .

Compruebe su enlace MySQL con el comando cat /etc/mysql/my.cnf | grep bind-address cat /etc/mysql/my.cnf | grep bind-address

Si ambas IP son iguales, entonces reinstale su servidor mysql

De lo contrario, cambie su IP en /etc/network/interfaces usando nano, vi, vim o cualquier cosa que prefiera.

Prefiero sudo nano /etc/network/interfaces

e ingrese el siguiente

 auto eth0 iface eth0 inet static address 192.168.0.5 netmask 255.255.255.0 

Guarde el archivo de interfaces, reinicie su interfaz sudo ifdown eth0 && sudo ifup eth0 reemplace “eth0” con su interfaz de red

Reinicie MySQL sudo service mysql stop seguido de sudo service mysql start

Si tienes el mismo problema que el mío, ¡estás listo para ir!

También verificaría la configuración de mysql. Me encontré con este problema con mi propio servidor, pero estaba un poco apurado y configuré incorrectamente el innodb_buffer_pool_size para mi máquina.

innodb_buffer_pool_size = 4096M

Por lo general, funciona bien hasta 2048, pero supongo que no tengo la memoria necesaria para admitir 4 conciertos.

Me imagino que esto también podría suceder con otras configuraciones de configuración de mysql.

en archlinux me enfrenté a este error y el problema era que el servicio mysqld no se estaba ejecutando.

Sin embargo, no pude habilitar el servicio mysql con systemctl start mysqld como se indica en la documentación de Archlinux. Creo que el error fue algo así como

mysqld.service no encontrado

Primero necesité reiniciar el sistema.

Luego systemctl enable mysqld el comando nuevamente (e systemctl enable mysqld ) y ahora mysql pudo encontrar el mysql.sock creado.

Tuve este tipo de problema cuando redimensioné la gota en digitalocean. Actualicé la versión de mysql y funciona para mí. Aquí está el tutorial que apliqué – https://serverpilot.io/community/articles/how-to-upgrade-mysql-5.5-to-5.6-on-ubuntu-14.04.html

Intenté casi todas las soluciones enumeradas, ninguna funcionó para mí hasta que reinicié la máquina y luego se reinició el servidor mysql cuando emití el comando “service mysql restart”.

En mi caso, el problema eran las direcciones de vinculación en /etc/mysql/my.cnf, y luego:

nano /etc/mysql/my.cnf

Buscar vincular direcciones y eliminar el específico con el host de la ip (no el 127.0.0.1)

Tuve un problema similar en CentOS VPS. Si MySQL no se inicia o sigue fallando justo después de que se inicia, pruebe estos pasos:

1) Busque el archivo my.cnf (el mío se encuentra en /etc/my.cnf) y agregue la línea:

innodb_force_recovery = X

reemplazando X con un número del 1 al 6, comenzando desde 1 y luego incrementando si MySQL no se iniciará. La configuración de 4, 5 o 6 puede borrar sus datos, así que tenga cuidado y lea http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html antes.

2) Reinicia el servicio MySQL. Solo se ejecutará SELECT y eso es normal en este punto.

3) Vuelque todas sus bases de datos / esquemas con mysqldump uno por uno, no comprima los volcados porque de todos modos tendría que descomprimirlos más tarde.

4) Mueva (o elimine) solo los directorios del bd dentro de / var / lib / mysql, preservando los archivos individuales en la raíz.

5) Detener MySQL y luego descomentar la línea agregada en 1). Inicia MySQL.

6) Recuperar todos los BD descargados en 3).

¡Buena suerte!

El archivo mysql.sock se crea cuando MariaDB se inicia y se elimina cuando MariaDB se apaga. No existirá si MariaDB no se está ejecutando. tal vez no instalaste MariaDB. USTED PODRÍA SEGUIR LA INSTRUCCIÓN A CONTINUACIÓN: https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 BEST

Pruebe lo siguiente en el indicador de la terminal:

 sudo mysql 

Una vez que eso le permita ingresar, puede crear un nuevo usuario y otorgar los privilegios que desee en la base de datos específica a la que necesite acceso.

Mysql 5.7 cambió algunas cosas y, de forma predeterminada, utiliza el complemento auth_socket (en oposición a mysql_native_password) para que root proteja a la cuenta de ser pirateada. Puede anular esto configurando el campo del complemento para la raíz, pero a menos que tenga una muy buena razón, probablemente no deba eludir la protección. Especialmente cuando sudo mysql es más fácil que mysql -u root -p todos modos.

Descubrí esta información, de todos los lugares, desde un sitio de ayuda de Raspberry Pi . Funcionó como un amuleto luego de que Lubuntu 18.04 me molestara por un par de horas.