ERRORE 2002 (HY000): impossibile connettersi al server MySQL locale tramite socket '/tmp/mysql.sock'


202

Ho installato MySQL su Mac OS X Mountain Lion con homebrew install mysql, ma quando ho provato mysql -u rootho riscontrato il seguente errore:

ERRORE 2002 (HY000): impossibile connettersi al server MySQL locale tramite socket '/tmp/mysql.sock' (2)

Cosa significa questo errore? Come posso ripararlo?


3
Non l'ho pubblicato come risposta, ma devi anche install mysql-serverimballare, non solomysql
Hanky ​​Panky

3
@HankyPanky forse era vero quando l'hai scritto. Ma nel 2016 Brew non ha mysql-servera install.
jjpe,

22
È importante notare che hai installato utilizzando Homebrew, quindi ignora i suggerimenti non homebrew e avvia (e riavvia all'avvio) con brew services start mysqlo (se non desideri un servizio in background) mysql.server start.
Dave Everitt,

1
Ho funzionato ma con il vecchio normale mysql 5.7.19. La nuova versione di mysql@5.7 5.7.24non funzionava perché il riferimento alla configurazione era collegato al vecchio mysql invece che al nuovo brew Cellar mysql@5.7 Keg. Quindi grazie ci provo più tardi
KeitelDOG il

1
È probabile che questo errore si verifichi anche dopo l'esecuzione, brew upgradeche installerà una versione più recente di mysql rispetto a quella precedentemente installata.
johnsampson,

Risposte:


113

Probabilmente è perché MySQL è installato ma non è ancora in esecuzione.

Per verificare che sia in esecuzione, apri Activity Monitor e in "Tutti i processi", cerca e verifica di vedere il processo "mysqld".

Puoi avviarlo installando "MySQL.prefPane".

Ecco il tutorial completo che mi ha aiutato: http://obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html


95
Ho appena corso mysqlde questo è tutto, questo è stato un problema causato da un cattivo arresto a causa di una sorta di hard reset / spegnimento del sistema.
ProfNandaa,

2
Nessuno dei metodi suggeriti ha funzionato. Per me, era in esecuzione, tuttavia, c'era un problema di autorizzazione. Running ha sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7risolto il problema
FooBar il

Quando si guarda in Activity Monitor, mysqlId è in esecuzione; per aggirare questo basta fermare mysql quindi riavviarlo.
JpersaudCodezit,

109

Dovrai avviare MySQL prima di poter utilizzare il mysqlcomando sul tuo terminale. Per fare questo, corri brew services start mysql. Per impostazione predefinita, brew installa il database MySQL senza una password di root. Per farlo funzionare:mysql_secure_installation .

Per eseguire Connect: mysql -uroot. rootè il nome utente qui.


8
Running ha sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7risolto il problema
FooBar il

1
Per chi si chiede mysql_secure_installationè uno script specifico di mariaDB.
T.Woody,

3
brew services start mysqlsuccesso. Ma quando lo inseguo mysql -uroot, sempre lo stesso errore.
Harper Koo,

è necessario eseguirlo ogni volta che si avvia un Mac o eseguirlo una volta eliminato l'errore / mantenere MySQL in esecuzione o avviare all'avvio?
Connor Leech,

Eseguire questo una volta dovrebbe essere sufficiente.
Md Mazedul Islam Khan,

90

Ciò è accaduto dopo l'installazione homebrew e si verifica a causa di problemi di autorizzazione. I seguenti comandi hanno risolto il problema.

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

sudo mysql.server start

2
sei fantastico @nirojan, stavo colpendo la testa contro il muro: thumsup:
Ravi Sharma

Freddo. Posso risolvere il mio problema quando cambio ad un altro account amministratore mac :)
William Wong Garay,

Grazie mille. Mi sono rotto la testa da più di 5 ore. Ho visto più risposte su Internet e solo questo ha aiutato.
Ivange94,

Ti amo @nirojan
Raccoon,

Complimenti! Ma quando ho riavviato il mio MacBook, ho lo stesso problema.
Junior Gantin,

46

Correre: brew info mysql

E segui le istruzioni. Dalla descrizione nella formula:

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

Spero che questo ti aiuti.


35

Come altri hanno sottolineato, questo è perché MySQL è installato ma il servizio non è in esecuzione. Esistono molti modi per avviare il servizio MySQL e ciò che ha funzionato per me è il seguente.

Per avviare il servizio:

  1. Vai a "Preferenze di sistema"
  2. Nel riquadro inferiore dovrebbe essere presente l'icona MySql.
  3. Fare doppio clic per avviare lo "Stato del server MySQL" e premere il pulsante "Avvia MySQL Server"

Il mio env:

Mac Yosemite 10.10.3

Pacchetto installato: /Volumes/mysql-advanced-5.6.24-osx10.8-x86_64


@HosMercury puoi confermare che hai installato MySQL
Ithar

Scarico e installo mysql dalla pagina web ufficiale di Mysql. Questa soluzione funziona per me. Grazie :)
鄭元傑

1
Ciao, ho scaricato e installato mysql anche dalla pagina web ufficiale, ma nel riquadro delle preferenze il server non è attivato (punto rosso), quando faccio clic su "avvia sql server" diventa "verde" per un secondo e poi di nuovo rosso, non succede niente. Ho provato 'chown', collegamento simbolico a tmp / mysql.socket, disinstallazione / reinstallazione, brew install mysql, ma tutto fallito. l'installazione brew mi dà un errore insoddisfatto, qualcosa che richiede il sistema operativo Sierra o superiore. Sto correndo a El Capitan. Qualsiasi aiuto sarebbe apprezzato.
Spencer Trinh,

24

Le soluzioni ruotano attorno:

  • modifica delle autorizzazioni di MySQL

    sudo chown -R _mysql:mysql /usr/local/var/mysql
  • Avvio di un processo MySQL

    sudo mysql.server start

Solo per aggiungere molte risposte utili e utili fornite qui e da molti post diversi, prova a specificare l'host se i comandi precedenti non hanno risolto il problema per te, ad es.

mysql -u root -p h127.0.0.1

Per me è stato il problema dei permessi
pfwd

dovrebbe essere: mysql -u root -p -h127.0.0.1
Duc Chi

Caspita, una soluzione tanto migliore che spazzare via tutta la mia roba locale. Questa è stata una soluzione rapida!
Giordania,

Ho provato sopra ma alla fine ha funzionato: sudo chown -R $ (whoami) $ (brew --prefix) / *
Kiran Ruth R

15

Avviso: questo metodo rimuoverà tutti i database nella /usr/local/var/mysqlcartella

Avevo installato MySQL con Homebrew e l'unica cosa che mi ha risolto è stata la reinstallazione di MySQL.

Sul mio laptop aziendale, non avevo l'autorizzazione per disinstallare MySQL dal mio computer tramite 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

Quindi, invece, ho rimosso e reinstallato manualmente MySQL:

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

E ha funzionato!


Avviso: questo metodo rimuoverà tutti i database (nella cartella / usr / local / var / mysql).
johnsampson,

13

Di seguito includo le ultime istruzioni delle brew install mysqlricerche più recenti per questo problema:

$ 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

Nel mio caso ho caricato mysql ora tramite launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.pliste sono stato quindi in grado di avviarlo $ mysqled essere sulla buona strada.

Spero che questo aiuti i recenti strumenti per la risoluzione dei problemi!


11

Sembra che il tuo server mysql non sia avviato. Di solito eseguo il comando stop e poi lo riavvio:

mysqld stop
mysql.server start

Stesso errore e questo funziona per me.


9

Questo risolto il mio problema quando ho riavviato il servizio mysql. Corri:

brew services start mysql

8

questo problema relativo /usr/local/var/mysqlall'accesso alla cartella, rimuovo questa cartella e reinstallo mysql.

  1. disinstallare mysql con brew:

    brew uninstall mysql

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

  3. brew install mysql@8.0
  4. mysql -u root

Questa soluzione funziona bene per me! MA HAI PERSO TUTTI I TUOI DATABASI! AVVERTIMENTO!


2
Molto probabilmente questo risolverà il problema, tuttavia per i lettori futuri, verrà avvisato che ciò cancellerà tutti i database. Fondamentalmente è una dura reinstallazione di MySQL. So che il contesto della domanda era una nuova installazione, ma alcune persone che stanno eseguendo la scansione potrebbero semplicemente provarlo senza conoscere il danno che potrebbe causare su un'installazione esistente / di produzione.
efru,

1
Questa non è in realtà una soluzione. Questo è "Hai provato ad accenderlo e spegnerlo di nuovo?"
Berry M.

6

Ough, mi ci è voluto un po 'per capire. L'ho visto in un commento. Dopo aver installato mysql usando brew e aver avviato il servizio (forse usando sudo brew services start mysql) quindi esegui:

$ mysqld

E MySQL dovrebbe essere in esecuzione per il tuo seguito.


5

Per me è stato semplice come correre:

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

invece di mysqld


1
Questo ha funzionato per me. Non so perché, ma potrebbe essere correlato a un bug di riavvio di Mac OS sul mio computer
kraftydevil

3

Ho trovato la soluzione al mio problema. Infatti, il mio server MySQL non era in esecuzione.

È stato causato dal fatto che MySQL non era configurato correttamente sulla mia macchina, quindi non era in grado di funzionare.

Per ovviare a questo, ho usato uno script che installa MySQL su Mac OSX Mountain Lion , che deve aver installato i file mancanti.

Ecco il link: http://code.macminivault.com/

Nota importante: questo script imposta la password di root come una stringa generata casualmente, che salva sul desktop, quindi fai attenzione a non eliminare questo file e a notare la password. Installa anche MySQL Manager nelle tue preferenze di sistema. Inoltre, non sono sicuro di rimuovere eventuali database esistenti, quindi fai attenzione.


3

Nel mio caso si trattava semplicemente di eliminare un file di blocco.

sudo rm -f /tmp/mysql.sock.lock

3

Ho riscontrato questo problema e sono riuscito a eseguire il server mysql utilizzando la soluzione di seguito

Installa mysql tramite .dmg( https://dev.mysql.com/downloads/mysql/5.7.html ), otterrai il pannello di servizio mysql nelle preferenze di sistema, quindi avvia mysql dal pannello e prova

mysql -u root -p

Immagini allegate per riferimento

Preferenze di Sistema

Pannello Mysql


2

Dopo aver lavorato su questo per diverse ore, quello che ha funzionato per me è stato andare su / etc / mysql / e modificare il file my.cnf. Aggiungi quanto segue

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

1
Questo ha funzionato anche per me, sebbene per la mia versione os / mysql fosse: /etc/my.conf, e il socket era in /var/lib/mysql/mysql.sock /var/log/mysqld.log dove si trova il file socket.
keithpjolley

1

Ho provato ogni modo possibile per risolvere questo problema, come ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock, disinstallare e reinstallare mysql, assicurarsi che mysql sia in esecuzione su xampp ma nessuno di questi ha ancora funzionato .

Infine, apro my.cnf (file di configurazione) e copio il percorso del socket (assicurandomi di copiare l'intero percorso altrimenti non funzionerà). Quindi eseguo questo comando nel mio terminale

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

Ecco, ecco, lancia mysql.

Questa soluzione funzionerà solo se il tuo MySQL viene mostrato in esecuzione su Xampp / Ampps, ma nel terminale non si connette ancora al socket giusto quando hai già provato qualcosa del tipo:

./mysql -u root

o

brew services start mysql

Spero che aiuti!


Ho anche provato tutte le soluzioni suggerite da questo post e non ha funzionato. Hai bisogno di xampp installato? non ho familiarità con questo. Ho installato solo la versione GPL del server mysql dal sito ufficiale (.DMG). Non credo di avere questa app - XAMPP. Puoi per favore elaborare? Grazie.
Spencer Trinh,

1

solo questo ha fatto il trucco per me brew services start --all (dopo aver provato tutte le risposte)


2
Spiega come è correlato alla domanda.
Mentallurg,

1

Ti consiglierei di correre

  mysql.server start

prima di andare a

  mysql -u root -p

in modo da assicurarsi che il server mysql sia in esecuzione prima di provare ad accedere

Questo accade molte volte ciò che si avvia / riavvia un computer in cui nessun server mysql è in esecuzione.


1

Continuo a tornare a questo post, ho riscontrato questo errore più volte. Potrebbe avere a che fare con l'importazione di tutti i miei database dopo aver eseguito una nuova installazione.

Sto usando l'homebrew. L'unica cosa che era solito ripararlo per me:

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

Questa mattina, il problema è tornato dopo che la mia macchina ha deciso di spegnersi durante la notte. L'unica cosa che l'ha risolto ora era aggiornare mysql.

brew upgrade mysql

0

Nel mio caso, subito dopo l'installazione del MAMP, l'accesso a mysql dal terminale stava dando lo stesso errore socket. Alla fine, tutto ciò che voleva era un riavvio e funziona.


0

Molte altre utili risposte qui, ma nulla mi ha risolto. Alla fine, nulla di ciò che ho trovato su questo sito o di altri avrebbe fatto funzionare qualsiasi versione di MySQL da Homebrew per me.

È stato super indolore scaricare il DMG da https://dev.mysql.com/downloads/file/?id=479114 (trova la versione appropriata di cui hai bisogno) e lascia che l'installazione guidata lo installi per me. L'unico altro passaggio manuale è stato l'aggiunta /usr/local/mysql/binal mio PERCORSO.

Consiglierei questa opzione se la birra ti dà problemi.

Aggiornamento: se il problema persiste, provare a eliminare completamente mysql prima di installare tramite DMG. Segui queste istruzioni: https://gist.github.com/vitorbritto/0555879fe4414d18569d


ho installato anche tramite il file DMG, ma ho ancora questo errore socket. mysql --version funziona per me e --help, ma nient'altro. Ho aggiunto il percorso per far funzionare i comandi --version e --help. puoi per favore fornire qualche consiglio? Grazie.
Spencer Trinh,

Vedi prima l'aggiornamento sull'eliminazione di mysql. Questo è stato risolto per me stesso e diversi colleghi.
Patrick,

0

Prova questo

rm -rf /usr/local/var/mysql && brew postinstall mysql@5.7 && brew services restart mysql@5.7

0

Si è verificato un problema simile dopo l'aggiornamento al sistema operativo Catalina. Dopo aver eseguito il comando mysqld, ho scoperto che c'era qualche problema con il file di registro. Potrebbe essere diverso per gli altri.

$ mysqld

Il problema era

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

Risolto creandolo e applicando le autorizzazioni appropriate.

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

Riavvia MySQL

brew services restart mysql@5.7

Il problema è stato risolto.

mysql -uroot -proot

0

Dopo aver provato molte soluzioni, sembra che quello che alla fine ha fatto il trucco era connettersi tramite IP. Non vengono più eliminati casualmente file socket.

Aggiorna la configurazione del tuo client MySQL (ad es. /usr/local/etc/my.cnf) Con:

[client]
port = 3306
host=127.0.0.1
protocol=tcp

-4
  1. Disinstallare MySQL.
  2. Rimuovi /usr/local/var/mysql/.
  3. Installa MySQL.

1
Questo non spazzerà via tutti i database che potresti avere? Sembra una soluzione piuttosto pesante per me, soprattutto considerando che probabilmente è solo un problema di MySQL che non funziona.
Martin Tournoij,

sì, ma secondo la domanda, questa era una nuova installazione e quindi il presupposto era che non ci sarebbero stati nessun database.
Amod Kulkarni,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.