Recientemente intenté instalar MySQL con homebrew ( brew install mysql
) y cuando intento ejecutarlo, aparece el siguiente error:
ERROR 2002 (HY000): No se puede conectar al servidor MySQL local a través del socket '/tmp/mysql.sock' (2)
No hay /tmp/mysql.sock
ni un /var/lib/mysql.sock
.
He buscado y no he encontrado ningún mysql.sock
archivo.
¿Cómo puedo arreglar esto?
mysqld
para verificar las cosas y asegurarse de que MySQL se apagó correctamente la última vez. Si tuvo un apagado "sucio" (por ejemplo, si la batería de una computadora portátil fuerza el apagado del sistema), esto debería limpiarlo. A continuación, puede iniciar el servidor MySQL de nuevo:mysql.server start
.Respuestas:
Cuando tienes el servidor funcionando a través de
debería ver el socket en /tmp/mysql.sock . Sin embargo, el sistema parece esperarlo en /var/mysql/mysql.sock . Para solucionar esto, debe crear un enlace simbólico en / var / mysql :
Esto me lo resolvió. Ahora mi phpMyAdmin funciona felizmente con localhost y 127.0.0.1 .
El crédito es para Henry
fuente
mysql.server start
lo consigoERROR! The server quit without updating PID file (/usr/local/var/mysql/lyahdav-C02R32HCG8WM.pid)
. Necesitaba una versión anterior de MySQL, instalada a través debrew install [email protected]
.mysql.server start
me loParece que su servidor mysql no está iniciado. Normalmente ejecuto el comando de parada y luego lo inicio de nuevo:
Mismo error, y esto funciona para mí.
fuente
mysqld &
un comentario anterior, pero creo que probablemente haría lo mismo, yamysqld stop
que estoy bastante seguro de que en mi caso se debió a un apagado incorrecto.Me quedaron algunos directorios de otra instalación de mysql (8.0), que no se eliminaron.
Resolví esto haciendo lo siguiente:
Primero desinstale mysql
Eliminar las carpetas / archivos que no se eliminaron
Reinstale mysql y vincúlelo
Habilitar e iniciar el servicio
fuente
Intente conectarse usando "127.0.0.1" en lugar de "localhost".
fuente
1) Si puede ver "mysql detenido" cuando ejecuta el siguiente comando;
2) y si puede iniciar mysql con el siguiente comando;
esto significa; mysql puede iniciarse manualmente, pero no se inicia automáticamente cuando se inicia el sistema operativo. Agregar mysql a los servicios solucionará este problema. Para hacerlo, puede ejecutar el siguiente comando;
Después de eso, puede reiniciar su sistema operativo e intentar conectarse a mysql para ver si se inició automáticamente. Hice lo mismo y dejé de recibir el siguiente error;
Espero que esto ayude.
fuente
El archivo
/tmp/mysql.sock
es probablemente un Named-Pipe, ya que está en una carpeta temporal. Una tubería con nombre es un archivo especial que nunca se almacena de forma permanente.Si creamos dos programas y queremos que un programa envíe un mensaje a otro programa, podríamos crear un archivo de texto. Tenemos un programa que escribe algo en el archivo de texto y el otro programa lee lo que escribió nuestro otro programa. Eso es lo que es una tubería, excepto que no escribe el archivo en el disco duro de nuestra computadora, IE no almacena permanentemente el archivo (como hacemos cuando creamos un archivo y lo guardamos).
Un enchufe es exactamente lo mismo que una tubería. La diferencia es que los sockets se usan generalmente en una red, entre computadoras. Un Socket envía información a otra computadora o recibe información de otra computadora. Tanto Pipes como Sockets utilizan un archivo temporal para compartir de modo que puedan "comunicarse".
Es difícil discernir cuál está usando MySql en este caso. Aunque no importa.
El comando
mysql.server start
debe hacer que el 'servidor' (programa) ejecute su bucle infinito que creará ese archivo especial y esperará los cambios (listen
para las escrituras).Después de eso, un problema común podría ser que el programa MySql no tenga permiso para crear un archivo en su máquina, por lo que es posible que deba otorgarle privilegios de root.
fuente
mysql.server start
,mysql.server stop
y luego volví a poner en marcha el servicio a través de Homebrewbrew services start [email protected]
y todo salió bien.Después de instalar macos mojave, tuve que limpiar la carpeta mysql debajo
/usr/local/var/mysql
y luego reinstalar a través de, de lobrew install mysql
contrario, las cosas relacionadas con el permiso aparecerían por todas partes.fuente
/usr/local/var/mysql
, también se eliminarán todas las bases de datos existentes.Recibí el mismo error y esto es lo que me ayudó:
fuente
Solo para agregar a estas respuestas, en mi caso no tenía un servidor mySQL local, se estaba ejecutando dentro de un contenedor docker. Por lo tanto, el archivo de socket no existe y no será accesible para el cliente "mysql".
El archivo sock es creado por mysqld y mysql lo usa para comunicarse con él. Sin embargo, si su servidor mySql no se está ejecutando localmente, no necesita el archivo sock.
Al especificar un nombre de host / ip, el archivo sock no es necesario, por ejemplo
fuente
Como pasé bastante tiempo tratando de resolver esto y siempre volvía a esta página cuando buscaba este error, dejaré mi solución aquí con la esperanza de que alguien ahorre el tiempo que he perdido. Aunque en mi caso estoy usando mariadb en lugar de MySql, es posible que aún pueda adaptar esta solución a sus necesidades.
Mi problema
es el mismo, pero mi configuración es un poco diferente (mariadb en lugar de mysql):
Mariadb instalado con homebrew
Inició el demonio
Intenté conectarme y obtuve el error mencionado anteriormente
Mi solución
averigüe qué
my.cnf
archivos utilizanmysql
(como se sugiere en este comentario ):compruebe dónde se está ejecutando el archivo de socket Unix (casi como se describe aquí ):
(es posible que desee en
grep mysql
lugar de mariadb)Agregue el archivo de socket que encontró
~/.my.cnf
(cree el archivo si es necesario) (asumiendo que~/.my.cnf
estaba en la lista al ejecutar elmysql --verbose ...
comando -comando desde arriba):Reinicie su mariadb:
Después de esto, pude ejecutar mysql y obtuve:
Entonces ejecuto el comando con privilegios de superusuario y después de ingresar mi contraseña obtuve:
Notas:
No estoy muy seguro de los grupos en los que debe agregar el socket, primero lo tenía [cliente-servidor] pero luego pensé que [cliente] debería ser suficiente. Así que lo cambié y todavía funciona.
Cuando ejecuto
mariadb_config | grep socket
obtengo: lo--socket [/tmp/mysql.sock]
cual es un poco confuso ya que parece que/usr/local/mariadb/data/mariadb.sock
es el lugar real (al menos en mi máquina)Me pregunto dónde puedo configurar el
/usr/local/mariadb/data/mariadb.sock
realmente/tmp/mysql.sock
para poder usar la configuración predeterminada en lugar de tener que editar mi.my.cnf
(pero ahora estoy demasiado cansado para darme cuenta ...)En algún momento, también hice las cosas mencionadas en otras respuestas antes de pensar en esto.
fuente
Deberá ejecutarlo
mysql_install_db
; la forma más fácil es si se encuentra en el directorio de instalación:Alternativamente, puede alimentar
mysql_install_db
unbasedir
parámetro como el siguiente:fuente
Enfrenté el mismo problema en mi mac y lo resolví siguiendo los siguientes tutoriales
https://mariadb.com/resources/blog/installing-mariadb-10116-mac-os-x-homebrew
Pero no olvide eliminar o desinstalar la versión anterior antes de continuar.
Comandos:
fuente
Después de reiniciar no pude conectarme con el mariadb local, una búsqueda también me llevó a esta página y quería compartir mi solución con ustedes.
Noté que falta el directorio my.cnf.d en / usr / local / etc /.
Este es un error conocido con homebrew que se describe y resuelve allí. https://github.com/Homebrew/homebrew-core/issues/36801
forma rápida de solucionarlo: mkdir /usr/local/etc/my.cnf.d
fuente
brew update
y reiniciar.brew services list
el resultado mostraba el estado de mariadbstarted
en amarillo. Gracias por el consejo.Al ejecutar mysql_secure_installation e ingresar la nueva contraseña, obtuve:
Me di cuenta al intentar lo siguiente de esta respuesta :
No devolvió nada, y supuse que eso significaba que no había un archivo .sock.
Entonces, agregué lo siguiente a mi archivo my.cnf (ya sea en /etc/my.cnf o en mi caso, /usr/local/etc/my.cnf ).
Debajo:
Debajo:
Esto se basó en esta publicación .
Luego, detenga / inicie mysql nuevamente y vuelva a intentar mysql_secure_installation, que finalmente me permitió ingresar mi nueva contraseña de root y continuar con otras preferencias de configuración.
Espero que esto ayude a alguien. Hombre, odio estas cosas ...
fuente
solo para completar este hilo. por lo tanto, MAMP (PRO) se usa con bastante frecuencia
el camino aquí es
fuente
Inicié mysql manualmente en el panel de preferencias del sistema al inicializar la base de datos y luego iniciarla. Esto resolvió mi problema.
fuente
En mi caso, el culpable se encontró en los archivos de registro:
Así que cambié el nombre
ib_logfile0
para deshacerme del error (tuve que hacer lo mismoib_logfile1
después).fuente
Tuve el mismo problema. Después de probar todos estos métodos sin éxito, hice lo siguiente:
en otra consola:
Vi el siguiente error:
Así que cambié la
tc.log
extensióntc.log.txt
y reinicié mariadb¡y hecho!
fuente
Esto funciona para mi:
Gracias
fuente
Para mí, lo había instalado hace
mariadb
mucho tiempo, luego lo instalé[email protected]
.Cuando ejecuté
mysql -uroot
, aparece el error:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Leyendo las respuestas:
mariadb
/usr/local/var/mysql
mysqld --initialize
Entonces pude
mysql -uroot -p
fuente
rm -rf / usr / local / var / mysql / ib_logfile *
fuente