Saltar al contenido

¿Qué debe contener mysqld.sock, por qué no lo tengo?

Es importante interpretar el código correctamente antes de utilizarlo a tu trabajo si ttienes algo que aportar puedes dejarlo en los comentarios.

Solución:

Solución 1:

Un archivo de socket en realidad no contiene datos, los transporta. Es un tipo de archivo especial e inusual creado con llamadas/comandos especiales del sistema. No es un archivo ordinario.

Es como una tubería que el servidor y los clientes pueden usar para conectarse e intercambiar solicitudes y datos. Además, solo se usa localmente. Su importancia es simplemente como una ubicación de encuentro acordada en el sistema de archivos.

Crear un archivo antiguo simple y colocarlo en esa ubicación puede interferir con el servidor que lo crea… y, por lo tanto, evitar que los clientes locales se conecten al servidor.

Mi recomendación es eliminar cualquier archivo que coloque en la ubicación. El servidor crea el archivo de socket especial.

Solución 2:

cuando especificas host=localhostel cliente mysql intentará iniciar sesión en el servidor mysql usando una tubería con nombre unix que requiere un .sock expediente.

Esto se puede omitir especificando host=127.0.0.1. Esto hará que el cliente mysql use TCP para conectarse al servidor.

Tomado de la documentación de MySQL:

mysql --host=127.0.0.1 --port=3306 --user=your_uname --password=your_pass

Solución 3:

Un socket es un pseudoarchivo especial que se utiliza para la transmisión de datos mediante la lectura y la escritura, no para el almacenamiento de datos.

El archivo de socket se crea cuando se inicia el servicio y se elimina cuando finaliza el servicio. La ubicación del archivo se define en /etc/my.cnf al igual que:

[mysqld]
socket=/var/run/mysql/mysql.sock

Solución 4:

En mi caso corriendo mysqld_safe creó un nuevo mysqld.sock expediente.

$ cd /etc/init.d/
$ mysqld_safe

Probablemente no recibirá un aviso, pero si reinicia su sesión, habrá un archivo mysqld.sock en alguna parte. Encuéntralo con

$ sudo find / -type s | grep mysqld.sock

Solución 5:

Tuve el mismo problema con la falta de mysqld.sock. Fui al directorio que contenía mysql, a saber /usr/bin en mi caso. Entonces emití el comando

mysql mysql --host=localhost --password=whatever --port=3306

El mysql doble no es un error tipográfico, sino que mysql es una base de datos que siempre estará allí en una nueva instalación de MySQL. No sé si --host, --password o --port son necesarios, pero como funcionó para mí usando estos parámetros, los incluyo. Una vez que apareció MySQL, entré en la tabla de usuarios y establecí la contraseña para root. Una vez que apareció MySQL, se creó el archivo de socket faltante. Espero que esto ayude a alguien ya que luché durante días.

valoraciones y reseñas

Si te gustó nuestro trabajo, puedes dejar un tutorial acerca de qué le añadirías a este artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *