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

Instalé LAMP en Ubuntu 12.04 LTS (Precise Pangolin) y luego establecí la contraseña de root en phpMyAdmin . Olvidé la contraseña y ahora no puedo iniciar sesión. Cuando trato de cambiar la contraseña a través de la terminal obtengo:

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

¿Cómo puedo arreglar esto? No puedo abrir LAMP, desinstalarlo o reinstalarlo.

Una vez tuve este problema y lo resolví instalando mysql-server , así que asegúrate de haber instalado el mysql-server , no el mysql-client o algo más.

Ese error significa que el archivo /var/run/mysqld/mysqld.sock no existe; si no instaló mysql-server , entonces el archivo no existiría. Pero si el mysql-server ya está instalado y se está ejecutando, entonces debe verificar los archivos de configuración.

Los archivos de configuración son:

 /etc/my.cnf /etc/mysql/my.cnf /var/lib/mysql/my.cnf 

En /etc/my.cnf , la configuración del archivo de socket puede ser /tmp/mysql.sock y en /etc/mysql/my.cnf la configuración del archivo de socket puede ser /var/run/mysqld/mysqld.sock . Entonces, elimine o cambie el nombre de /etc/mysql/my.cnf , deje que mysql use /etc/my.cnf , entonces el problema puede resolverse.

Prueba esto:

 mysql -h 127.0.0.1 -P 3306 -u root -p  

También (para ver si se está ejecutando):

 telnet 127.0.0.1 3306 

Probablemente es solo una configuración my.cnf en el archivo my.cnf , en /etc/somewhere (dependiendo de la distribución de Linux ).

Estoy viendo todas estas respuestas, pero ninguna ofrece la opción de restablecer la contraseña y ninguna respuesta aceptada . La verdadera pregunta es que olvidó su contraseña, por lo que necesita restablecerla, no ver si se está ejecutando o no (instalada o no) como implica la mayoría de estas respuestas.


Para restablecer la contraseña

Siga estos pasos (puede ser útil si realmente olvida su contraseña y puede intentarla en cualquier momento, incluso si no se encuentra en la situación en este momento):

  1. Detener mysql

     sudo /etc/init.d/mysql stop 

    O para otras versiones de distribución:

     sudo /etc/init.d/mysqld stop 
  2. Inicie MySQL en modo seguro

     sudo mysqld_safe --skip-grant-tables & 
  3. Inicie sesión en MySQL usando root

     mysql -uroot 
  4. Seleccione la base de datos MySQL para usar

     use mysql; 
  5. Restablecer la contraseña

     update user set password=PASSWORD("mynewpassword") where User='root'; 
  6. Eliminar los privilegios

     flush privileges; 
  7. Reiniciar el servidor

     quit 
  8. Detenga y vuelva a iniciar el servidor

    Ubuntu y Debian:

     sudo /etc/init.d/mysql stop ... sudo /etc/init.d/mysql start 

    En CentOS, Fedora y RHEL:

     sudo /etc/init.d/mysqld stop ... sudo /etc/init.d/mysqld start 
  9. Inicia sesión con una nueva contraseña

     mysql -u root -p 
  10. Escriba la nueva contraseña y vuelva a disfrutar de su servidor como si no hubiera pasado nada

Esto fue tomado de Restablecer una contraseña de root de MySQL .


Actualización tomada del comentario de @ Daniel a continuación:

En MySQL 5.7, se eliminó el campo de contraseña en el campo de la tabla mysql.user, y ahora el nombre del campo es ‘authentication_string’, por lo que el paso 5 debería ser:

  update user set authentication_string=password('mynewpassword') where user='root'; 

Intenté los siguientes pasos:

  1. Inicie sesión como super user o use sudo
  2. Abra /etc/mysql/my.cnf usando gedit
  3. Encuentre bind-address y cambie su valor a la dirección IP de la máquina host del servidor de la base de datos. Para mí, era localhost o 127.0.0.1
  4. Guarde y cierre el archivo.
  5. Regrese a la terminal y ejecute sudo service mysql start

Y funcionó para mí.

Solucioné este problema ejecutando el siguiente comando:

 mysql.server start 

Y si está en un Mac y usa brew para instalar mysql, simplemente use:

 brew services start mysql 

Tuve un problema similar. mysql no comenzaría:

 sudo service mysql start start: Job failed to start 

Si desactivara apparmor:

 sudo aa-complain /etc/apparmor.d/* 

el problema desapareció El problema era que mysqld estaba intentando acceder a /run/mysqld/mysqld.sock, pero el perfil de apparmor solo daba permiso a /var/run/mysqld/mysqld.sock (/ var / run se enlaza / ejecuta simbólicamente, por lo que estos son en realidad lo mismo). No estoy seguro de por qué mysqld no está utilizando la ruta de var, ya que eso es lo que se establece en todos los archivos de configuración, pero puede solucionar el problema agregando lo siguiente a /etc/apparmor.d/usr.sbin.mysqld

 /run/mysqld/mysqld.pid rw, /run/mysqld/mysqld.sock rw, 

Lo resolví matando el proceso de mysql :

 ps -ef | grep mysql kill [the id] 

Y luego comencé el servidor de nuevo con:

 sudo /etc/init.d/mysql restart 

Pero el start funciona:

 sudo /etc/init.d/mysql start 

Luego inicié sesión como admin y terminé.

De alguna manera, el proceso del servidor MySQL no creó el socket, o el cliente está buscando el socket en el lugar equivocado.

Mi primera sugerencia sería verificar si el servidor MySQL se está ejecutando. La segunda sugerencia podría ser: ¿se está ejecutando el servidor MySQL en otro host? Si es así, agregue el indicador -h a su cliente MySQL en el terminal.

Si MySQL se está ejecutando realmente y se está ejecutando localmente, verifique su archivo my.cnf . Debería haber una línea como

 socket = /var/run/mysqld/mysqld.sock 

Vea si eso coincide con la ubicación del socket que mencionó en su publicación.

Por experiencia, yo diría que el escenario más probable es que su servidor MySQL no se esté ejecutando o no se esté ejecutando en el mismo host donde ejecuta su cliente MySQL desde la terminal.

Acabo de experimentar el mismo problema después de tener que reiniciar mi servidor de producción. Estoy ejecutando Debian 8.1 (Jessie) en una gota de DigitalOcean.

Esto es lo que hice para resolver mi problema:

  1. Compruebe si el archivo /var/run/mysqld/mysqld.sock existe. Si no es así, créelo manualmente escribiendo touch /var/run/mysqld/mysqld.sock (que es lo que tenía que hacer).

  2. Entonces el proceso MySQL puede usar este archivo. Cambie la propiedad de dicho archivo ingresando chown mysql /var/run/mysqld/mysqld.sock .

  3. Una vez que se haya hecho ‘2’, reinicie el servicio MySQL ingresando el service mysql restart o /etc/init.d/mysql restart .

Después de seguir los pasos anteriores, mi problema fue resuelto. Raramente tengo este problema, y ​​probablemente haya una mejor manera, así que de todos modos, proporcione comentarios constructivos si es necesario :).

En mi caso, era que el disco estaba lleno y mysqld no podía comenzar más.

Intenta reiniciar el servicio mysql.

servicio mysql restart

o

servicio de parada mysql

servicio mysql start

Si no reconoce el comando “detener”, definitivamente es el espacio en disco. Deberías dejar espacio en la partición asignada por mysql o agrandar el disco.

Verifique el espacio en el disco con

df -h

Es posible que su servidor mysql no se esté ejecutando. Asegúrese de que se ejecuta escribiendo mysql.server start en la terminal.

Esto es lo que funcionó para mí:

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

Esto crea un enlace.

Si está utilizando Amazon EC2 y tiene este problema en la instancia, solo necesita hacer:

 sudo yum install mysql-server sudo service mysqld restart 

Amazon EC2 no tiene un servidor instalado (solo el cliente está instalado), por lo que debe instalarlo en su instancia y luego intentarlo

  mysql -u root -p 

para comprobar si funcionó.

Creo que cada vez que recibes el error

ERROR 2002 (HY000): No se puede conectar al servidor MySQL local a través del socket ‘/var/lib/mysql/mysql.sock’

Primero te recomendaré que verifiques si tu daemon mysql está ejecutando … La mayoría de las veces no se ejecutará de forma predeterminada. Puede verificarlo por el /etc/init.d/mysqld status .

Si no se está ejecutando, inícielo primero:

 .../etc/init.d/mysqld start. 

Apuesto a que funcionará al 110%.

En lugar de usar localhost:

 mysql -u myuser -pmypassword -h localhost mydatabase 

Use 127.0.0.1

 mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase 

(También tenga en cuenta, no hay espacio entre -p y mypassword)

Disfruta 🙂

Asegúrese de tener copias de seguridad de bases de datos importantes y luego intente desinstalar todo lo relacionado con MySQL :

 apt-get remove --purge mysql\* 

Luego instálalo de nuevo :

 apt-get install mysql-server mysql-client 

Esto funcionó para mí y se guardaron datos.

Si PHP MySQL muestra errores, es posible que deba reinstalar PHP MySQL :

 apt-get install php5-fpm php5-mysql 

Si tiene XAMPP instalado en su máquina Linux, intente copiar su archivo /opt/lampp/etc/my.cnf de /opt/lampp/etc/my.cnf a /etc/my.cnf .

Luego, ejecute nuevamente la mysql -u root … Ahora debería tener el socket correcto y poder ejecutar el cliente MySQL.

También tengo este problema, pero lo hice:

 sudo service mysql restart 

Funcionó para mí

En mi caso, el puerto predeterminado 3306 estaba siendo utilizado por algún otro proceso y, por lo tanto, no estaba comenzando. Después de que detuve el otro servicio e hice sudo service mysql start , funcionó bien. Por cierto, puedes usar algo como sudo lsof -Pn -iTCP:3306 para ver quién puede estar usando el puerto.

En mi caso, funcionó haciendo algo de I + D:

Puedo conectarme a MySQL usando

 root-debian#mysql -h 127.0.0.1 -u root -p 

Pero no funciona con mysql -u root -p .

No encontré ninguna bind-address de enlace en my.cnf . Así que informé sobre el parámetro socket=/var/lib/mysql/mysqld.sock en my.cnf que me causaba un problema con el inicio de sesión.

Después de reiniciar el servicio, todo salió bien:

 root@debian:~# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.6.19 MySQL Community Server (GPL) 

Verifica el parámetro "bind-adress" en my.cnf.

De lo contrario, intenta con el comando:

 mysql -h 127.0.0.1 -P 3306 -u root -p 
  • -h para el host 127.0.0.1 , es decir, localhost

  • -P (observe -P como mayúscula) para el puerto 3306 , es decir, el puerto predeterminado para MySQL

Tuve el mismo problema. A veces esto sucede si tu servicio MySQL es rechazado.

Entonces debes comenzarlo:

 sudo service mysql start 

En el servidor de Debian Jessie, mi solución de trabajo era simplemente hacer

 service mysql restart service mysql reload 

como usuario root

ENCONTRÉ LA SOLUCIÓN

Antes de disparar el comando: mysql_secure_installation

  • Paso 1: sudo systemctl stop mariadb
  • Paso 2: sudo systemctl start mariadb
  • Paso 3: mysql_secure_installation

Luego se le preguntará la contraseña de root y simplemente puede presionar Enter y establecer su nueva contraseña de root.

Si su instalación fue reciente, debe confirmar si su instalación es la instalación del SERVIDOR … como mysql-server-5.5. Tal vez haya instalado solo “mysql” … esto es solo un cliente en lugar del servidor.

Por experiencia, digo que debe verificar si el servidor se está ejecutando primero y luego intentar configurar MySQL. La última solución es volver a instalar MySQL.

Yo tuve el mismo problema. Después de mucho buscar, no encontré ninguna respuesta.

Por último, revisé el directorio /tmp , y sus permisos eran 755. Cambié sus permisos a 777 y mysqld comenzó bien sin ningún problema.

Abra la terminal y escriba:

 sudo apt-get purge mysql-client-core-5.6 sudo apt-get autoremove sudo apt-get autoclean sudo apt-get install mysql-client-core-5.5 sudo apt-get install mysql-server 

Tanto el cliente central de la base de datos MySQL como los paquetes del servidor MySQL tendrán la misma versión 5.5. MySQL Client 5.5 y MySQL Server 5.5 son las “mejores” versiones actuales de estos paquetes en Ubuntu 14.04 según lo determinen los mantenedores de paquetes.

Si prefiere instalar MySQL Client 5.6 y MySQL Server 5.6, también puede encontrar los paquetes mysql-client-core-5.6 y mysql-server-5.6 en el Centro de Software de Ubuntu. Lo importante es que los números de versión de cliente y servidor coinciden en cualquier caso.

Esto funcionó para mí.

 mysqld stop mysql.server start 

Ahora funciona…

He seguido el tutorial Instalación de MariaDB 10.1.16 en Mac OS X con Homebrew para superar este problema.

Pero no te olvides de matar o desinstalar la antigua instalación de MariaDB.

    Intereting Posts