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=localhost
el 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.