Recibo el siguiente error cuando intento conectarme a mysql:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
¿Hay alguna solución para este error? ¿Cuál podría ser la razón detrás de esto?
Recibo el siguiente error cuando intento conectarme a mysql:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
¿Hay alguna solución para este error? ¿Cuál podría ser la razón detrás de esto?
Respuestas:
¿Te estás conectando a "localhost" o "127.0.0.1"? Noté que cuando se conecta a "localhost" se usa el conector de socket, pero cuando se conecta a "127.0.0.1" se usa el conector TCP / IP. Puede intentar usar "127.0.0.1" si el conector del zócalo no está habilitado / funcionando.
/etc/hosts
archivo en mi contenedor acoplable me mostró el nombre de host de MySql mysql
. El uso de este mismo nombre de host en mi configuración de conexión resolvió el problema.
Asegúrese de que su servicio mysql se esté ejecutando
service mysqld start
Luego, pruebe uno de los siguientes:
(si no ha configurado la contraseña para mysql)
mysql -u root
si ya ha establecido la contraseña
mysql -u root -p
service mariadb start
porque mariadb.org/debian-9-released-mariadb-mysql-variant
Si su archivo my.cnf (generalmente en la carpeta etc.) está configurado correctamente con
socket=/var/lib/mysql/mysql.sock
puede verificar si mysql se está ejecutando con el siguiente comando:
mysqladmin -u root -p status
intente cambiar su permiso a la carpeta mysql. Si está trabajando localmente, puede intentar:
sudo chmod -R 777 /var/lib/mysql/
eso me resolvió
El servidor MySQL no se está ejecutando, o esa no es la ubicación de su archivo de socket (consulte my.cnf).
Lo más probable mysql.sock
es que no exista en /var/lib/mysql/
.
Si encuentra el mismo archivo en otra ubicación, entonces enlace simbólico:
Por ejemplo: lo tengo en /data/mysql_datadir/mysql.sock
Cambie el usuario a mysql y ejecútelo como se menciona a continuación:
su mysql
ln -s /data/mysql_datadir/mysql.sock /var/lib/mysql/mysql.sock
Eso resolvió mi problema
Si está en un RHEL reciente, es posible que deba iniciar mariadb (un código abierto mysql db) en lugar de mysql db:
yum remove mysql
yum -y install mariadb-server mariadb
service mariadb start
Entonces deberías poder acceder a mysql de la manera habitual:
mysql -u root -p
mariadb-server
y mariadb
, no olvide ejecutar mysql_secure_installation
para limpiar algunas configuraciones inseguras predeterminadas.
En mi caso, he movido el archivo de socket a otra ubicación dentro /etc/my.cnf
de /var/lib/mysql/mysql.sock
a/tmp/mysql.sock
Incluso después de reiniciar el servicio mysqld, sigo viendo el mensaje de error cuando intento conectarme.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
El problema está en la forma en que se configura el cliente. La ejecución de los diagnósticos en realidad mostrará la ruta correcta del socket. p.ejps aux | grep mysqld
Trabajos:
mysql -uroot -p -h127.0.0.1
mysql -uroot -p --socket=/tmp/mysql.sock
No funciona:
mysql -uroot -p
mysql -uroot -p -hlocalhost
Puede solucionar este problema agregando la misma línea de socket en la [client]
sección dentro de la configuración de mysql.
Simplemente edite /etc/my.cnf
Agregar las siguientes líneas amy.cnf
[mysqld]
socket=/var/lib/mysql/mysql.sock
[client]
socket=/var/lib/mysql/mysql.sock
Reinicie mysql y conéctese nuevamente
mysql -u usuario -p contraseña base de datos -h host;
Compruebe si su servicio mysqld se está ejecutando o no, si no se ejecuta, inicie el servicio.
Si su problema no se resuelve, busque /etc/my.cnf
y modifique de la siguiente manera, donde verá una línea que comienza con socket
. Haga una copia de seguridad de ese archivo antes de hacer esta actualización.
socket=/var/lib/mysql/mysql.sock
Cambiar a
socket=/opt/lampp/var/mysql/mysql.sock -u root
MariaDB, una bifurcación de MySQL desarrollada por la comunidad, se ha convertido en la implementación predeterminada de MySQL en muchas distribuciones.
Entonces, primero debes comenzar,
$ sudo systemctl start mariadb
Si esto falla, intente,
$ sudo systemctl start mysqld
Luego, para comenzar mysql,
$ mysql -u root -p
A partir de hoy, en Fedora el paquete se llama mariadb
Y en Ubuntu se llama mariadb-server
.
Por lo tanto, es posible que deba instalarlo si aún no está instalado en su sistema.
Asegúrate de tener suficiente espacio /var
. Si Mysql demon no puede escribir información adicional en la unidad, el servidor mysql no se iniciará y provocará el errorCan't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Considere usar
expire_logs_days = 10
max_binlog_size = 100M
Esto lo ayudará a mantener bajo el uso del disco.
innodb_buffer_pool_size
en my.cnf
. Establecerlo en un valor pequeño como innodb_buffer_pool_size = 50M
es una buena prueba para descartar esta hipótesis;)
Compruebe si se está ejecutando otro servicio mysql.
Asegúrese de haber iniciado el servidor:
mysql.server start
Luego, conéctese con el usuario root:
mysql -uroot
Si su mysql funcionaba anteriormente y se ha detenido de repente, simplemente "reinicie" el servidor.
Estaba enfrentando este problema en mi CentOS VPS .->
Estaba constantemente recibiendo
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'(2)
Intenté todas las técnicas, finalmente reiniciar el servidor solucionó los problemas ->
shutdown -r now
Espero que esto ayude !!
si cambia archivos en / var / lib / mysql [como copiar o reemplazar eso], debe establecer el propietario de los archivos en mysql, esto es tan importante si el reinicio de mariadb.service ha sido lento
chown -R mysql: mysql / var / lib / mysql / *
chmod -R 700 / var / lib / mysql / *
Primero ingrese "service mysqld start" e inicie sesión
Asegúrese de haber instalado el servidor MySQL correctamente, me encontré con este error muchas veces y creo que es complicado depurarlo desde el socket, es decir, podría ser más fácil reinstalarlo.
Si está utilizando CentOS 7, esta es la forma correcta de instalarlo:
En primer lugar, agregue la fuente de la comunidad mysql
yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
Entonces puedes instalarlo yum install mysql-community-server
Comience con systemctl: systemctl start mysqld
Mi problema fue que instalé mysql con éxito y funcionó bien.
Pero un día, ocurrió el mismo error.
No se puede conectar al servidor MySQL local a través del socket '/var/lib/mysql/mysql.sock' (2)
Y no existía ningún archivo mysql.sock.
Esta solución resolvió mi problema y mysql estaba funcionando nuevamente:
Inicie sesión como root:
sudo su -
Correr:
systemctl stop mysqld.service
systemctl start mysqld.service
systemctl enable mysqld.service
Prueba como root:
mysql -u root -p
MySQL ahora debería estar en funcionamiento.
Espero que esto también pueda ayudar a alguien más.
Tenga en cuenta que si bien mysql lee la información de la ubicación del archivo socket del archivo my.cnf, el programa mysql_secure_installation parece no hacerlo correctamente a veces.
Entonces, si eres como yo y barajas las cosas en el momento de la instalación, podrías meterte en la situación en la que puedes conectarte a la base de datos con mysql muy bien, pero la cosa no se puede asegurar (no usar ese script de todos modos).
Para solucionar esto, la sugerencia de sreddy funciona bien: haga un enlace suave desde donde el script esperaría el socket hasta donde realmente está. Ejemplo:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
(Uso / tmp / como ubicación predeterminada para los sockets)
Una forma de reproducir este error: si pretendía conectarse a un servidor externo pero en lugar de conectarse al servidor local no existente:
eric@dev ~ $ mysql -u dev -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through
socket '/var/lib/mysql/mysql.sock' (2)
eric@dev ~ $
Entonces debe especificar el host de esta manera:
eric@dev ~ $ mysql --host=yourdb.yourserver.com -u dev -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 235
Server version: 5.6.19 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+-------------------------+
| Database |
+-------------------------+
| information_schema |
| mysql |
| performance_schema |
+-------------------------+
3 rows in set (0.00 sec)
mysql> exit
Bye
eric@dev ~ $
Esta podría ser una sugerencia estúpida, pero asegúrese al 100% de que su base de datos todavía esté alojada en localhost. Por ejemplo, si un administrador de red eligió (o cambió a) el alojamiento de Amazon DB, ¡necesitará ese nombre de host!
En mi caso, estaba importando una nueva base de datos y no pude volver a conectarme después de eso. Finalmente me di cuenta de que era un problema espacial.
Para que pueda eliminar la última base de datos y expandir su disco duro o lo que hice, restauró una instantánea de mi máquina virtual.
Por si alguien piensa que es útil
Este es un problema si se está quedando sin espacio en disco. La solución es liberar algo de espacio del HDD.
Por favor, lea más para tener la explicación:
Si está ejecutando MySQL en LINUX, verifique el espacio libre de HDD con el comando disk free:
df
si obtienes algo así:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 5162828 4902260 0 100% /
udev 156676 84 156592 1% /dev
/dev/sda3 3107124 70844 2878444 3% /home
¡Entonces este es el problema y ahora tienes la solución!
Como mysql.sock quiere crearse en la carpeta mysql, que casi siempre está debajo de la carpeta raíz, no se pudo lograr debido a la falta de espacio.
Si recibe periódicamente el comando ls en el directorio mysql (en openSUSE 11.1 está en / var / lib / mysql) obtendrá algo como:
hostname:/var/lib/mysql #
.protected IT files ibdata1 mysqld.log systemtemp
.tmp NEWS greekDB mysql mysqld.pid test
ARXEIO TEMP1 ib_logfile0 mysql.sock polis
DATING deisi ib_logfile1 mysql_upgrade_info restore
El archivo mysql.sock aparece y desaparece con frecuencia (debe intentar asignar con el ls para golpear una instancia con el archivo mysql.sock en la carpeta).
Esto se debe a que no hay suficiente espacio en disco.
Espero poder ayudar a algunas personas !!!! ¡Gracias!
Pruebe las primeras 2, 3 soluciones. El error es stil popup & Si no puede encontrar/var/lib/mysql/mysql.sock
find /var/ -name mysql.sock
Verifique el espacio disponible en / var /
df
Si el directorio está lleno, elimine algunos archivos / directorios no utilizados
rm /var/cache/*
Probablemente su problema se resolverá ahora.
Si está en el shell de sf.net , intente:
mysql --host=mysql-{LETTER} --user={LETTER}{GROUP ID}admin -p
Cambie {LETTER} y {GROUP ID} como se muestra en su base de datos MySQL del perfil de administrador del proyecto.