Mi problema comenzó porque ya no podía iniciar sesión como root en mi instalación de mysql. Intentaba ejecutar mysql sin tener las contraseñas activadas ... pero cada vez que ejecutaba el comando
# mysqld_safe --skip-grant-tables &
Nunca volvería a recibir el aviso. Intenté 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 reintento el comando y lo dejo el tiempo suficiente, recibo 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 intento iniciar sesión como root haciendo:
# mysql -u root
Me sale el siguiente mensaje de error:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Lo comprobé y /var/run/mysqld/mysqld.sock
archivo 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 en caso de que ayude.
Finalmente decidí desinstalar y reinstalar mysql.
apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin
Después de reinstalar todos los paquetes nuevamente en el mismo orden que antes, 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 cambié manualmente el nombre de todos los archivos y directorios de mysql mysql.bad
en sus ubicaciones respectivas.
/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 intenté reinstalar mysql-server
y mysql-client
nuevamente. Pero he notado que no me pide una contraseña. ¿No se supone que debe solicitar una contraseña de administrador?
/var/run/mysqld/mysqld.sock
falta. El problema que vinculó tiene ese archivo.Respuestas:
Para encontrar todos los archivos de socket en su sistema, ejecute:
Mi sistema de servidor Mysql tenía el socket abierto en
/var/lib/mysql/mysql.sock
Una vez que encuentre dónde se abre el socket, agregue o edite la línea a su archivo /etc/my.cnf con la ruta al archivo del socket:
A veces, el script de inicio del sistema que lanzó el ejecutable de la línea de comandos especifica un indicador
--socket=path
. Este indicador podría anular la ubicación my.cnf, y eso provocaría 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 le importe dónde reside el zócalo, simplemente cambiar el my.cnf para que funcione debería funcionar.Luego, detenga el proceso mysqld. La forma de hacerlo variará según el sistema.
Si eres súper usuario en el sistema Linux, prueba una de las siguientes opciones si no conoces el método específico que usa tu configuración de Mysql:
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
pkill -9 mysqld
pgrep mysql
ops aux | grep mysql | grep -v grep
4969
finaliza conkill -9 4969
Después de hacer esto, es posible que desee buscar un archivo pid
/var/run/mysqld/
y eliminarloAsegúrese de que los permisos en su socket sean tales que cualquier usuario que mysqld esté ejecutando pueda leerlo / escribirlo. Una prueba fácil es abrirlo a lectura / escritura completa y ver si aún funciona:
Si eso soluciona el problema, puede personalizar los permisos y la propiedad del socket según sea necesario según su configuración de seguridad.
Además, el directorio en el que reside el socket debe ser accesible por el usuario que ejecuta el proceso mysqld.
fuente
kill -9
; Hay varias formas de probarlo antes de que tenga que llegar a eso.ps -aux | grep mysqld
y ver si se están ejecutando otros procesos mysqlPrueba este comando,
fuente
sudo service mysqld start
sudo apt-get install mysql-server
si aún no lo tienes instalado :)Este error ocurre debido a múltiples instalaciones de mysql. Ejecute el comando:
Mata el proceso usando:
y luego ejecuta el comando:
También elimine este proceso ejecutando:
Ahora que está completamente configurado, simplemente ejecute los siguientes comandos:
Tener muy bien trabajando mysql nuevamente
fuente
La solución es mucho más fácil.
mysql.sock
se encuentra su archivo. En mi caso fue en/opt/lampp/var/mysql/mysql.sock
sudo Nautilus
Esto inicia su administrador de archivos con privilegios de superusuario
mysql.sock
se encuentra su archivomysqld.sock
haga clic derecho sobre el archivo y corte se/var/run
y crea una carpeta llamadamysqld
e ingrésalamysqld.sock
archivo en/var/run/mysqld/mysqld.sock
:)fuente
sudo find / -type s
no contiene ningunomysql.sock
?Solo necesito iniciar el servicio MySQL después de la instalación:
Para Ubuntu:
Para CentOS o RHEL:
fuente
sudo systemctl status mysql.service
ysudo systemctl start mysql.service
. Esto funciona para míHay un error en Ubuntu con MySQL 5.6 y 5.7
var/run/mysqld/
que 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 alternativa, que no es perfecta, pero al menos lo pone en funcionamiento después de detener / reiniciar:fuente
# systemd tmpfile settings for mysql # See tmpfiles.d(5) for details
y luego,d /var/run/mysqld 0755 mysql mysql -
después de reiniciar, mysql debería comenzar normalmente. Esto es de bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823 , comentario 3. Si tuvo este problema con MySQL 5.7, comente en Launchpad. Cuantos más usuarios aborden el problema, más atención recibirá./etc/tmpfiles.d/mysql.conf
comentario por motorbaby solucionó este problema para mí. En un sistema operativo Centos 7 y usandomysql Ver 15.1 Distrib 10.3.11-MariaDB,
.De acuerdo, solo 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 obtiene este error: 'No se puede conectar al servidor MySQL local a través del socket' / var / run / mysqld / mysqld.sock '(2)'.
Detener MySql
Reiniciarlo o iniciarlo
Haga un enlace como este y déselo al sistema
Ejecute una instalación segura que guíe todo el proceso que necesita hacer para configurar mysql
fuente
Can't connect
error cuando intento ejecutar el comando anterior.Enfrenté el 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 paquetes / bibliotecas sql se produjo ese error, así que intente esto si está realizando alguna actualización :)
fuente
Hay muchas razones para este problema, pero a veces solo reinicie el servidor mysql, lo solucionará.
fuente
Usando XAMPP en ubuntu:
Cree una carpeta llamada mysqld dentro del directorio / var / run . Puede lograr eso usando el comando
sudo mkdir /var/run/mysqld
.Cree un enlace simbólico al archivo mysql.sock creado por el servidor XAMPP cuando se inicia. Puedes usar el comando
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
.¡Buena suerte! Espero que te salgas con la tuya esta vez.
fuente
La respuesta del paso de carga del usuario funcionó para mí. A veces es necesario editar el archivo en
/etc/mysql/my.cnf
agregar línea al clientefuente
mysql: unknown variable 'Host=127.0.0.1'
Host
debe estar en minúsculashost
y funcionará. Además, esta solución funcionó para mí.* Error: 'No se puede conectar al servidor MySQL local a través del socket' /var/run/mysqld/mysqld.sock '(2)'
soluciones
finalmente desinstale y reinstale mysql. ** **
luego instalar nuevamente por
Después de esta operación, se utilizarán 164 MB de espacio en disco adicional.
...... .......
Por fin obtendrás estas líneas ...
Configuración de libhtml-template-perl (2.95-1) ...
Configurando mysql-common-5.6 (5.6.16-1 ~ exp1) ... Procesando disparadores para libc-bin (2.19-0ubuntu6) Procesando disparadores para ureadahead (0.100.0-16) ...
Y entonces
root @ ubuntu1404: ~ # mysql -u root -p (para cada contraseña primero debe usar)
Introducir la contraseña:
Nota: la contraseña ingresada debe ser la misma que la contraseña de tiempo de instalación de mysql (como .root, system, admin, rahul, etc.)
Luego escribe
USE rahul_db (nombre de la base de datos);
Gracias.**
fuente
mysql-server-5.6/5.5, mysql-client-5.6/5.5
. ¡Gracias!E: Package 'mysql-server-5.6' has no installation candidate
, no existe en Ubuntu 18.04Asegúrese de que la ruta del archivo de socket inaccesible sea la misma que '/var/run/mysqld/mysqld.sock'; de lo contrario, cambie la ruta como la suya. Detener el mysqld
Si el proceso aún se está ejecutando;
Elimine el directorio mysql donde se creará el socket. Para mí no permitía eliminar, por lo que tuve que eliminar con fuerza.
Establecer la propiedad del directorio
Comience mysql
Intentando conectar mysql
fuente
Creo que su servidor MySQL no se ha iniciado. Inicie el servidor utilizando uno de los siguientes comandos.
o
fuente
Solución temporal
Quizás alguien enfrentando este problema. Estoy usando Mysql Workbench en Ubuntu 14 y obtuve este error.
Encuentra tu 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
tmp
directorio.fuente
/tmp
carpeta, por lo que se eliminará con seguridad. Puedes cambiar.sock
la ubicación del archivo. Ver @ user3002884 respuesta.puede encontrar
mysqld.sock
en/var/run/mysqld
si ya ha instaladomysql-server
porsudo apt-get install mysql-server
fuente
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
en
/etc/my.cnf
agregar estas líneas:Y reinicie el servicio con:
service mysql restart
esto funcionó para mí
fuente
Esto ya se mencionó un par de veces, pero esto funcionó de inmediato para mí:
servicio mysql reiniciar
fuente
En mi caso, se estaban ejecutando dos procesos mysqld ... mataron los procesos opcionales usando pkill -9 mysqld
fuente
Si tiene muchas bases de datos y tablas en su sistema, y si se ha
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 para estos objetos) Establezca un nuevo número máximo cony reinicie mysql. Este enfoque puede ayudar cuando el socket no se crea en absoluto, pero realmente puede que este no sea el verdadero problema, hay un problema subyacente.
fuente
Acabo de tener este problema en Ubuntu 14.10
Turnos que
mysql-server
ya no se instalaron (de alguna manera se habían eliminado) pero no pude simplemente instalarlo porque había algunos paquetes rotos y problemas / conflictos de dependencia.Al final tuve que reinstalar mysql
fuente
Desinstalé mysql en Ubuntu 16.04 /ubuntu/172514/how-do-i-uninstall-mysql
Reinstalé mysql https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04
Esto pareció funcionar.
fuente
Mi solución;
Ubuntu 18.04 (WSL)
/etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
Cambié el puerto. Me ha funcionado. Puedes escribir otro puerto. Ejemplo 3355
fuente
¿Por qué obtener este error?
Recibí nuevas actualizaciones de las bibliotecas mysql, así que actualicé mi sistema operativo Kubuntu después de recibir estos errores.
Comandos que probé y cómo lo arreglé.
MySql-server se ejecuta correctamente pero cuando intenté conectarlo
Revisé
/var/run/mysqld/mysqld.sock'.
este directorio. Mis archivos no existían.También probé estos comandos para conectarme, pero no funcionó para mí.
Después de perder alrededor de 2 horas encontré la solución
Después de eso todo se arregló para mí.
fuente
Cambiar el
host
a127.0.0.1
funcionó para mí.Edite el archivo
/etc/mysql/my.cnf
y agregue la línea mencionada a continuación a la sección:client
Después de que hayas terminado con eso. Ejecute el siguiente comando.
fuente
También verificaría la configuración de mysql. Estaba teniendo este problema con mi propio servidor, pero estaba demasiado apresurado y configuré mal 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 opciones de configuración de mysql.
fuente
Tuve un problema similar en un CentOS VPS. Si MySQL no se inicia o sigue fallando justo después de comenzar, intente estos pasos:
1) Busque el archivo my.cnf (el mío estaba ubicado 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 aumentando si MySQL no se inicia. Establecer 4, 5 o 6 puede eliminar sus datos, así que tenga cuidado y lea http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html antes.
2) Reinicie el servicio MySQL. Solo se ejecutará SELECT y eso es normal en este punto.
3) Volcar 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 de bd dentro de / var / lib / mysql, conservando los archivos individuales en la raíz.
5) Detenga MySQL y luego descomente la línea agregada en 1). Inicia MySQL.
6) Recupera todos los bd en 3).
¡Buena suerte!
fuente
Pruebe lo siguiente en un indicador de terminal:
Una vez que eso le permita ingresar, puede crear un nuevo usuario y otorgarle los privilegios que desee en la base de datos específica a la que necesita acceso.
Mysql 5.7 cambió algunas cosas y, de forma predeterminada, utiliza el complemento auth_socket (a diferencia de mysql_native_password) para que la raíz proteja la cuenta de ser pirateada. Puede anular esto configurando el campo del complemento para root, pero a menos que tenga una muy buena razón, probablemente no debería eludir la protección. Especialmente cuando
sudo mysql
es más fácil que demysql -u root -p
todos modos.Descubrí esta información, de todos los lugares, de un sitio de ayuda de Raspberry Pi . Funcionó de maravilla después de que Lubuntu 18.04 me molestó muchísimo durante un par de horas.
fuente
Primero crea dir / var / run / mysqld
con comando:
luego agregue derechos al directorio
después de este intento
fuente
Tuve exactamente el mismo problema. Después de luchar durante una hora, encontré una forma de corregirlo sin reinstalar mysql-common, mysql-client, mysql-server.
En primer lugar, vaya a "/ var / run / mysqld". Encontrará que mysql.sock no existe. Simplemente elimine todo el directorio mysqld y vuelva a crearlo y bríndele los privilegios necesarios.
Ahora, mata el proceso mysql en su totalidad. Es posible que le muestre "esperando el limpiador de página" al ejecutar el comando "/etc/init.d/mysql status" incluso después de cerrar el servicio.
Para cerrar completamente el servicio, use
Una vez que finalice el proceso, intente iniciarlo nuevamente usando
¡Y verás que funciona bien! Y tampoco habrá problemas para detenerlo también.
fuente