ERROR 2002 (HY000): No se puede conectar al servidor MySQL local a través del socket '/tmp/mysql.sock'

202

Instalé MySQL en Mac OS X Mountain Lion con homebrew install mysql, pero cuando lo intenté mysql -u rootrecibí el siguiente error:

ERROR 2002 (HY000): No se puede conectar al servidor MySQL local a través del socket '/tmp/mysql.sock' (2)

¿Qué significa este error? ¿Cómo puedo arreglarlo?

frijoles astutos
fuente
3
No lo publiqué como una respuesta, pero también tiene que install mysql-serverempaquetar, no solomysql
Hanky ​​Panky
3
@HankyPanky tal vez eso era cierto cuando lo escribiste. Pero en 2016 Brew no tiene que mysql-serverhacerlo install.
jjpe
22
Es importante tener en cuenta que instaló usando Homebrew, así que ignore los consejos que no son de Homebrew e inicie (y reinicie al inicio) con brew services start mysqlo (si no desea un servicio en segundo plano) mysql.server start.
Dave Everitt
1
Lo hice funcionar pero con el viejo mysql normal 5.7.19. La nueva versión de [email protected] 5.7.24no podría funcionar porque alguna referencia de configuración se mantuvo vinculada a la antigua mysql en lugar de la nueva cerveza Cellar [email protected] Keg. Así que gracias, intento esto más tarde
KeitelDOG
1
También es probable que este error ocurra después de la ejecución, brew upgradelo que instalará una versión más nueva de mysql que la instalada previamente.
johnsampson

Respuestas:

113

Probablemente se deba a que MySQL está instalado pero aún no se está ejecutando.

Para verificar que se está ejecutando, abra el Monitor de actividad y en "Todos los procesos", busque y verifique que ve el proceso "mysqld".

Puede iniciarlo instalando "MySQL.prefPane".

Aquí está el tutorial completo que me ayudó: http://obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html

shammerw0w
fuente
95
Acabo de correr mysqldy eso fue todo, este fue un problema causado por un apagado deficiente debido a una especie de reinicio / apagado del sistema.
ProfNandaa
2
Ninguno de los métodos sugeridos funcionó. Para mí, se estaba ejecutando, sin embargo, había un problema de permiso. Correr sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart [email protected]resolvió el problema
FooBar
Al mirar en el Monitor de actividad, el mysqlId se está ejecutando; para evitar esto, simplemente detenga mysql y luego reinícielo.
JpersaudCodezit
109

Tendrá que iniciar MySQL antes de poder usar el mysqlcomando en su terminal. Para hacer esto, corre brew services start mysql. Por defecto, brew instala la base de datos MySQL sin una contraseña de root. Para asegurarlo, ejecute:mysql_secure_installation .

Para la ejecución de Connect: mysql -uroot. rootes el nombre de usuario aquí.

Md Mazedul Islam Khan
fuente
8
Correr sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart [email protected]solucionó el problema
FooBar
1
Para aquellos que se preguntan mysql_secure_installationes un script específico de mariaDB.
T.Woody
3
brew services start mysqléxito. Pero cuando corro mysql -uroottras él, sigue el mismo error.
Harper Koo
¿Es necesario ejecutar esto cada vez que se inicia una Mac o la ejecutará una vez que se elimine el error / mantenga MySQL en ejecución o se inicie en el inicio?
Connor Leech
Ejecutar esto una vez debería ser suficiente.
Md Mazedul Islam Khan
90

Esto sucedió después de la instalación de homebrew y ocurre debido a problemas de permisos. Los siguientes comandos arreglaron el problema.

sudo chown -R _mysql:mysql /usr/local/var/mysql

sudo mysql.server start
Nirojan Selvanathan
fuente
2
eres increíble @nirojan, me estaba golpeando la cabeza contra la pared: thumsup:
Ravi Sharma
Frio. Puedo resolver mi problema cuando cambio a otra cuenta de administrador mac :)
William Wong Garay
Un millón de gracias. He estado partiéndome la cabeza por más de 5 horas. Visto múltiples respuestas en internet y solo esto ayudó.
ivange94
Te amo @nirojan
Mapache
¡Prestigio! Pero cuando reinicié mi MacBook, tengo el mismo problema.
Junior Gantin
46

Correr: brew info mysql

Y sigue las instrucciones. De la descripción en la fórmula:

Set up databases to run AS YOUR USER ACCOUNT with:
    unset TMPDIR
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

To set up base tables in another folder, or use a different user to run
mysqld, view the help for mysql_install_db:
    mysql_install_db --help

and view the MySQL documentation:
  * http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
  * http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html

Espero que esto ayude.

Gaurav Agarwal
fuente
35

Como otros han señalado, esto se debe a que MySQL está instalado pero el servicio no se está ejecutando. Hay muchas formas de iniciar el servicio MySQL y lo que funcionó para mí es el siguiente.

Para iniciar el servicio:

  1. Vaya a "Preferencia del sistema"
  2. En el panel inferior debe haber un icono de MySql.
  3. Haga doble clic para iniciar el 'Estado del servidor MySQL' y presione el botón 'Iniciar servidor MySQL'

Mi env:

Mac Yosemite 10.10.3

Paquete instalado: /Volumes/mysql-advanced-5.6.24-osx10.8-x86_64

Ithar
fuente
@HosMercury puede confirmar que tiene instalado MySQL
Ithar
Descargo e instalo mysql desde la página web oficial de Mysql. Esta solución me funciona. Gracias :)
鄭元傑
1
Hola, también descargué e instalé mysql de la página web oficial, pero en el panel de preferencias el servidor no está activado (punto rojo), cuando hago clic en 'iniciar servidor sql' se vuelve 'verde' por un segundo y vuelve a rojo, no pasa nada. Intenté 'chown', enlace simbólico a tmp / mysql.socket, desinstalar / reinstalar, brew install mysql, pero todo falló. la instalación de brew me da un error insatisfecho, algo acerca de requerir Sierra o un sistema operativo superior. Estoy corriendo el capitan. Cualquier ayuda sería apreciada.
Spencer Trinh
24

Las soluciones giran en torno a:

  • cambiar los permisos de MySQL

    sudo chown -R _mysql:mysql /usr/local/var/mysql
  • Iniciando un proceso MySQL

    sudo mysql.server start

Solo para agregar muchas respuestas excelentes y útiles que se han proporcionado aquí y de muchas publicaciones diferentes, intente especificar el host si los comandos anteriores no resolvieron este problema por usted, es decir

mysql -u root -p h127.0.0.1
mondieki
fuente
Para mí fue el problema de los permisos
pfwd
debería ser: mysql -u root -p -h127.0.0.1
Duc Chi
Wow, una solución tan mejor que borrar todas mis cosas locales. Esta fue una solución rápida!
Jordan
Lo intenté anteriormente, pero finalmente funcionó: sudo chown -R $ (whoami) $ (brew --prefix) / *
Kiran Ruth R
15

Advertencia: este método eliminará todas sus bases de datos en /usr/local/var/mysql carpeta

Tenía MySQL instalado con Homebrew, y lo único que me solucionó fue reinstalar MySQL.

En la computadora portátil de mi empresa, no tenía permiso para desinstalar MySQL de mi computadora a través de Homebrew:

$ brew uninstall mysql --ignore-dependencies
Uninstalling /usr/local/Cellar/mysql/8.0.12... (255 files, 233.0MB)
Error: Permission denied @ dir_s_rmdir - /usr/local/Cellar/mysql/8.0.12

Entonces, en cambio, eliminé y reinstalé MySQL manualmente:

$ sudo rm -rf /usr/local/Cellar/mysql
$ brew cleanup
$ sudo rm -rf /usr/local/var/mysql
$ brew install mysql

¡Y eso funcionó!

yndolok
fuente
Advertencia: este método eliminará todas sus bases de datos (en la carpeta / usr / local / var / mysql).
johnsampson
13

A continuación, incluyo las últimas instrucciones brew install mysqlpara que las búsquedas más recientes de este problema puedan beneficiarse:

$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.6.26.yosemite.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.6.26.yosemite.bottle.1.tar.gz

To connect:
    mysql -uroot

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
  mysql.server start

En mi caso, cargué mysql ahora a través de launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plisty luego pude iniciar$ mysql y seguir mi camino.

¡Espero que esto ayude a los solucionadores de problemas recientes!

ggentzke
fuente
11

Parece que su servidor mysql no está iniciado. Normalmente ejecuto el comando de detención y luego lo vuelvo a iniciar:

mysqld stop
mysql.server start

El mismo error, y esto funciona para mí.

Prakhar Agarwal
fuente
9

Esto solucionó mi problema cuando reinicié el servicio mysql. Solo corre:

brew services start mysql
pmventura
fuente
8

este problema relacionado con el /usr/local/var/mysqlacceso a la carpeta, elimino esta carpeta y reinstalo mysql.

  1. desinstalar mysql con brew:

    brew uninstall mysql

  2. sudo rm -r /usr/local/var/mysql

  3. brew install [email protected]
  4. mysql -u root

¡Esta solución funciona bien para mí! ¡PERO PERDIÓ TODAS SUS BASES DE DATOS! ¡ADVERTENCIA!

Barsmaga
fuente
2
Es más que probable que esto solucione el problema, sin embargo, para futuros lectores, tenga en cuenta que esto eliminará todas sus bases de datos. Básicamente es una reinstalación difícil de MySQL. Sé que el contexto de la pregunta era una instalación nueva, pero algunas personas que están escaneando pueden intentar esto sin saber el daño que podría causar en una instalación existente / de producción.
desde el
1
Esto no es realmente una solución. Esto es "¿Has intentado encenderlo y apagarlo de nuevo?"
Berry M.
6

Ough, eso me llevó un tiempo darme cuenta. Lo vi en un comentario. Después de instalar mysql usando brew e iniciar el servicio (quizás usando sudo brew services start mysql), ejecute:

$ mysqld

Y MySQL debería estar ejecutándose para usted a partir de entonces.

FooBar
fuente
5

Para mí fue simple como correr:

/usr/local/opt/mysql/bin/mysqld_safe

en vez de mysqld

Kenny Cason
fuente
1
Esto funcionó para mí. No estoy seguro de por qué, pero puede estar relacionado con un error de reinicio de Mac OS en mi máquina
kraftydevil
3

Encontré la solución a mi problema. De hecho, fue porque mi servidor MySQL no se estaba ejecutando.

Fue causado por que MySQL no se configuró correctamente en mi máquina, por lo que no se pudo ejecutar.

Para remediar esto, utilicé un script que instala MySQL en Mac OSX Mountain Lion , que debe haber instalado los archivos que faltan.

Aquí está el enlace: http://code.macminivault.com/

Nota importante: esta secuencia de comandos establece la contraseña de root como una cadena generada aleatoriamente, que guarda en el escritorio, así que tenga cuidado de no eliminar este archivo y anotar la contraseña. También instala el administrador MySQL en las preferencias de su sistema. Tampoco estoy seguro de si elimina las bases de datos existentes, así que tenga cuidado al respecto.

frijoles astutos
fuente
3

En mi caso, fue simplemente una cuestión de eliminar un archivo de bloqueo.

sudo rm -f /tmp/mysql.sock.lock
Brad Johnson
fuente
3

Pasé por este problema y logré ejecutar el servidor mysql usando la solución a continuación

Instale mysql a través de .dmg( https://dev.mysql.com/downloads/mysql/5.7.html ), obtendrá el panel de servicio mysql en las preferencias del sistema, luego inicie mysql desde el panel e intente

mysql -u root -p

Imágenes adjuntas para referencia

Preferencias del Sistema

Panel Mysql

Aravind Vemula
fuente
2

Después de trabajar en esto durante varias horas, lo que funcionó para mí fue ir a / etc / mysql / y editar el archivo my.cnf. Agregue lo siguiente

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
Jackstine
fuente
1
Esto también me sirvió, aunque para mi versión de os / mysql fue: /etc/my.conf, y el socket estaba en /var/lib/mysql/mysql.sock /var/log/mysqld.log debería apuntar a donde está el archivo socket.
keithpjolley
1

He intentado todas las formas posibles de resolver este problema, como ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock, desinstala y reinstala mysql, asegúrate de que mysql se esté ejecutando en xampp pero ninguno de ellos funcionó .

Finalmente, abro my.cnf (archivo de configuración) y copio la ruta del socket (asegúrese de copiar la ruta completa, de lo contrario no funcionará). Luego realizo este comando en mi terminal

mysql --socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

Lo, y he aquí, mysql se lanza.

Esta solución solo funcionará si su MySQL se muestra ejecutándose en Xampp / Ampps, pero en el terminal todavía no se conecta al socket correcto cuando ya ha intentado algo como:

./mysql -u root

o

brew services start mysql

¡Espero que esto ayude!

Kate Lee
fuente
También probé todas las soluciones sugeridas en esta publicación, y no funcionó. ¿Necesitas instalar xampp? No estoy familiarizado con esto. Solo instalé la versión GPL del servidor mysql desde el sitio web oficial (.DMG). No creo tener esta aplicación: XAMPP. ¿Puedes por favor elaborar? Gracias.
Spencer Trinh
1

solo esto ha hecho el truco para mí brew services start --all (después de probar todas las respuestas)

usuario10604324
fuente
2
Explica cómo se relaciona con la pregunta.
mentallurg
1

Te recomendaría que corras

  mysql.server start

antes de ir a

  mysql -u root -p

para asegurarse de que el servidor mysql se esté ejecutando antes de intentar iniciar sesión en él

Esto sucede muchas veces cuando inicia / reinicia una máquina donde no se está ejecutando ningún servidor mysql.

mwangaben
fuente
1

Sigo volviendo a esta publicación, me he encontrado con este error varias veces. Es posible que tenga que ver con la importación de todas mis bases de datos después de realizar una instalación nueva.

Estoy usando homebrew. Lo único que solía arreglarlo para mí:

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Esta mañana, el problema volvió después de que mi máquina decidiera apagarse durante la noche. Lo único que lo solucionó ahora fue actualizar mysql.

brew upgrade mysql
JKL
fuente
0

En mi caso, justo después de instalar el MAMP, el acceso a mysql desde el terminal daba el mismo error de socket. Al final, todo lo que quería era reiniciar y está funcionando.

Diwaker Tripathi
fuente
0

Muchas otras respuestas útiles aquí, pero nada me arregló esto. En última instancia, nada de lo que encontré en este sitio u otros obtendría una versión de MySQL de Homebrew que funcionara para mí.

Fue muy sencillo descargar el DMG de https://dev.mysql.com/downloads/file/?id=479114 (encuentre la versión adecuada que necesita) y deje que el asistente lo instale por mí. El único otro paso manual fue agregar/usr/local/mysql/bin a mi RUTA.

Recomiendo esta opción si la preparación te está dando problemas.

Actualización: si esto aún no lo soluciona, intente purgar completamente MySQL antes de instalar a través de DMG. Siga estas instrucciones: https://gist.github.com/vitorbritto/0555879fe4414d18569d

Patricio
fuente
También lo instalé a través del archivo DMG, pero aún recibo este error de socket. mysql --version funciona para mí y --help, pero nada más. Agregué a la ruta para que los comandos --version y --help funcionen. ¿puedes por favor dar algún consejo? Gracias.
Spencer Trinh
Consulte la actualización sobre la purga de mysql primero. Eso lo he estado arreglando para mí y para varios compañeros de trabajo.
Patrick
0

Prueba esto

rm -rf /usr/local/var/mysql && brew postinstall mysql@5.7 && brew services restart mysql@5.7
Golam Sorwar
fuente
0

Encontró un problema similar después de actualizar a Catalina OS. Después de ejecutar el comando mysqld, descubrí que había algún problema con el archivo de registro. Podría ser diferente para los demás.

$ mysqld

El problema fue

2019-10-16T04:58:59.174474Z 0 [ERROR] Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory
2019-10-16T04:58:59.174508Z 0 [ERROR] Aborting

Lo resolvió creándolo y aplicando los permisos adecuados.

sudo mkdir -p /var/log/mysql
sudo touch /var/log/mysql/error.log
sudo chown -R _mysql:mysql /var/log/mysql/

Reiniciar MySQL

brew services restart mysql@5.7

El problema fue resuelto.

mysql -uroot -proot
Saif Khan
fuente
0

Después de probar muchas soluciones, parece que la que finalmente hizo el truco fue conectarse por IP. Ya no se eliminan sockets de archivos al azar.

Simplemente actualice la configuración de su cliente MySQL (por ejemplo /usr/local/etc/my.cnf) con:

[client]
port = 3306
host=127.0.0.1
protocol=tcp
Nicodemuz
fuente
-4
  1. Desinstalar MySQL.
  2. Remover /usr/local/var/mysql/.
  3. Instalar MySQL.
Amod Kulkarni
fuente
1
¿Esto no eliminará todas las bases de datos que pueda tener? Parece una solución bastante dura para mí, especialmente teniendo en cuenta que probablemente sea solo un problema de que MySQL no se ejecute.
Martin Tournoij
sí, pero según la pregunta, se trataba de una instalación nueva y, por lo tanto, se suponía que no habría bases de datos.
Amod Kulkarni