solucionar - ERROR 2002(HY000): No se puede conectar al servidor MySQL local a través del socket ''/var/run/mysqld/mysqld.sock''(2)
mysql.sock no existe (30)
Abre el terminal y escribe:
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 la base de datos MySQL como el cliente central y los paquetes del servidor MySQL tendrán la misma versión 5.5. MySQL Client 5.5 y MySQL Server 5.5 son las versiones "mejores" actuales de estos paquetes en Ubuntu 14.04 según lo determinan 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 del cliente y del servidor coinciden en ambos casos.
Esto funcionó para mí.
Instalé LAMP en Ubuntu 12.04 LTS (Precise Pangolin) y luego configuré la contraseña de root en phpMyAdmin . Olvidé la contraseña y ahora no puedo iniciar sesión. Cuando intento cambiar la contraseña a través del 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.
Acabo de experimentar el mismo problema después de que tuve 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:
Compruebe si el archivo
/var/run/mysqld/mysqld.sock
existe. Si no es así, créelo manualmente ingresandotouch /var/run/mysqld/mysqld.sock
(que es lo que tenía que hacer).Así que el proceso MySQL puede usar este archivo. Cambie la propiedad de dicho archivo ingresando
chown mysql /var/run/mysqld/mysqld.sock
.Una vez que se haya hecho ''2'', reinicie el servicio MySQL ingresando
service mysql restart
o/etc/init.d/mysql restart
.
Después de seguir los pasos anteriores, mi problema fue resuelto. Rara vez tengo este problema, y probablemente hay una mejor manera, así que por supuesto proporcione comentarios constructivos si es necesario :).
Ahora funciona...
He seguido el tutorial Instalando MariaDB 10.1.16 en Mac OS X con Homebrew para solucionar este problema.
Pero no te olvides de matar o desinstalar la antigua instalación de MariaDB.
Asegúrese de tener copias de seguridad de bases de datos importantes y luego intente desinstalar cosas relacionadas con MySQL :
apt-get remove --purge mysql/*
Luego instálalo de nuevo :
apt-get install mysql-server mysql-client
Esto funcionó para mí y los datos se guardaron.
Si PHP MySQL muestra errores, es posible que tenga que reinstalar PHP MySQL :
apt-get install php5-fpm php5-mysql
Compruebe el parámetro "bind-adress"
adress "bind-adress"
en my.cnf.
Si no, intente 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 (aviso -P como mayúscula) para el puerto
3306
, es decir, el puerto predeterminado para MySQL
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''
Recomendaré primero que compruebe si su demonio mysql
está ejecutando ... La mayoría de las veces no se ejecutará por defecto. Puede verificarlo por /etc/init.d/mysqld status
.
Si no se está ejecutando, inicie primero:
.../etc/init.d/mysqld start.
Apuesto a que funcionará en un 110%.
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 comprobar si el servidor MySQL se está ejecutando. La segunda sugerencia podría ser: ¿el servidor MySQL se está ejecutando en otro host? Si es así, agregue la -h <hostname>
a su cliente MySQL en el terminal.
Si MySQL se está ejecutando, y se ejecuta localmente, revise su archivo my.cnf
. Debe haber una línea como
socket = /var/run/mysqld/mysqld.sock
Comprueba si coincide con la ubicación de socket que mencionaste en tu publicación.
Por experiencia, diría que el escenario más probable es que su servidor MySQL no se ejecute en absoluto o no se ejecute en el mismo host en el que ejecuta su cliente MySQL desde el terminal.
En el servidor de Debian Jessie, mi solución de trabajo era simplemente hacer
service mysql restart
service mysql reload
como usuario root
En lugar de usar localhost:
mysql -u myuser -pmypassword -h localhost mydatabase
Utilice 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)
Disfrutar :)
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 está funcionando con mysql -u root -p
.
No encontré ninguna bind-address
de enlace en mi.cnf . Así que superé el parámetro socket=/var/lib/mysql/mysqld.sock
en my.cnf
que me estaba causando un problema con el inicio de sesión.
Después de reiniciar el servicio 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)
En mi caso, el puerto predeterminado 3306 estaba siendo usado por algún otro proceso y, por lo tanto, no estaba iniciando. 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, fue que el disco estaba lleno y mysqld no pudo iniciarse más.
Intente reiniciar el servicio mysql.
servicio mysql restart
o
servicio mysql parada
servicio mysql start
Si no reconoce el comando "detener", definitivamente es el espacio en disco. Debe hacer algo de espacio en la partición. Mysql está asignado o hacer que el disco sea más grande.
Compruebe el espacio en disco con
df -h
Es posible que tu servidor mysql no se esté ejecutando. Asegúrese de que se ejecuta escribiendo mysql.server start
en el 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.
Estoy viendo todas estas respuestas, pero ninguna ofrece la opción de restablecer la contraseña y ninguna respuesta aceptada . La pregunta real es que olvidó su contraseña, por lo que necesita restablecerla, no ver si se está ejecutando o no (instalada o no), como la mayoría de estas respuestas implican.
Para restablecer la contraseña
Siga estos pasos (puede ser útil si realmente olvida su contraseña y puede intentarlo en cualquier momento, incluso si no está en la situación en este momento):
Deja de
mysql
sudo /etc/init.d/mysql stop
O para otras versiones de distribución:
sudo /etc/init.d/mysqld stop
Iniciar MySQL en modo seguro
sudo mysqld_safe --skip-grant-tables &
Inicie sesión en MySQL usando root
mysql -uroot
Seleccione la base de datos MySQL para usar
use mysql;
Restablecer la contraseña
update user set password=PASSWORD("mynewpassword") where User=''root'';
Desechar los privilegios
flush privileges;
Reiniciar el servidor
quit
Detener e iniciar el servidor de nuevo.
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
Iniciar sesión con una nueva contraseña
mysql -u root -p
Escriba la nueva contraseña y disfrute de su servidor nuevamente como si nada hubiera pasado
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, el campo de la contraseña en el campo de la tabla mysql.user se eliminó, 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'';
He intentado los siguientes pasos:
- Inicia sesión como
super user
o usasudo
- Abra
/etc/mysql/my.cnf
usando gedit - Busque
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í, fuelocalhost
o127.0.0.1
- Guarde y cierre el archivo.
- Regresa a la terminal y ejecuta
sudo service mysql start
Y funcionó para mí.
Por experiencia, digo que debes comprobar si el servidor se está ejecutando primero y luego intentar configurar MySQL. La última solución es volver a instalar MySQL.
Prueba esto:
mysql -h 127.0.0.1 -P 3306 -u root -p <database>
También (para ver si está funcionando):
telnet 127.0.0.1 3306
Probablemente sea solo una my.cnf
configuración en el archivo my.cnf
, en /etc/somewhere
(dependiendo de la distribución de Linux ).
Resolví esto matando el proceso mysql
:
ps -ef | grep mysql
kill [the id]
Y luego volví a encender el servidor con:
sudo /etc/init.d/mysql restart
Pero start
trabajar también:
sudo /etc/init.d/mysql start
Luego inicié sesión como admin
, y terminé.
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 en caso de que necesite instalarlo en su instancia, y luego intente
mysql -u root -p
para comprobar si eso funcionó.
Si su instalación fue reciente, debe confirmar si su instalación es el SERVIDOR de instalación ... como mysql-server-5.5 ... Tal vez haya instalado solo "mysql" ... esto es solo cliente en lugar del servidor.
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 mysql -u root
nuevamente ... Ahora debería tener el socket correcto y poder ejecutar el cliente MySQL.
Solucioné este problema ejecutando el siguiente comando:
mysql.server start
Y si está usando un Mac y utiliza brew para instalar mysql, simplemente use:
brew services start mysql
También tengo este problema, pero acabo de hacer:
sudo service mysql restart
Funcionó para mí.
Tuve el mismo problema. A veces esto sucede si su servicio MySQL es rechazado.
Así que tienes que empezar:
sudo service mysql start
Tuve un problema similar. mysql no comenzaría
sudo service mysql start
start: Job failed to start
Si deshabilito apparmor:
sudo aa-complain /etc/apparmor.d/*
el problema se fue El problema era que mysqld intentaba acceder a /run/mysqld/mysqld.sock, pero el perfil del autor solo daba permiso a /var/run/mysqld/mysqld.sock (/ var / run tiene un enlace simbólica a / run, por lo que en realidad lo mismo). No estoy seguro de por qué mysqld no está usando la ruta var, ya que eso está configurado 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,
Yo tuve el mismo problema. Después de mucho buscar no encontré ninguna respuesta.
Finalmente, verifiqué el directorio /tmp
, y sus permisos fueron 755. Cambié sus permisos a 777 y mysqld comenzó bien sin ningún problema.
Encontré la solución
Antes de mysql_secure_installation
el comando: mysql_secure_installation
- Paso 1:
sudo systemctl stop mariadb
- Paso 2:
sudo systemctl start mariadb
- Paso 3:
mysql_secure_installation
Luego le pedirá la contraseña de root y puede simplemente presionar Enter y configurar su nueva contraseña de root.
Una vez tuve este problema y lo resolví instalando mysql-server
, así que asegúrate de haber instalado mysql-server
, no mysql-client
o alguna otra cosa.
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.
mysqld stop
mysql.server start