GNU/Linux >> Linux Esercitazione >  >> Linux

errore:'Impossibile connettersi al server MySQL locale tramite il socket '/var/run/mysqld/mysqld.sock' (2)' -- /var/run/mysqld/mysqld.sock mancante

Prova questo comando,

sudo service mysql start

Per trovare tutti i file socket sul tuo sistema esegui:

sudo find / -type s

Il mio sistema server Mysql aveva il socket aperto a /var/lib/mysql/mysql.sock

Una volta individuato dove viene aperto il socket, aggiungi o modifica la riga nel tuo file /etc/my.cnf con il percorso del file socket:

socket=/var/lib/mysql/mysql.sock

A volte lo script di avvio del sistema che ha avviato l'eseguibile della riga di comando specifica un flag --socket=path . Questo flag potrebbe sovrascrivere la posizione my.cnf e ciò risulterebbe in un socket non trovato dove il file my.cnf indica che dovrebbe essere. Quindi, quando provi a eseguire il client della riga di comando mysql, leggerà my.cnf per trovare il socket, ma non lo troverà poiché devia da dove il server ne ha creato uno. Quindi, a meno che non ti interessi dove risiede il socket, la semplice modifica di my.cnf in modo che corrisponda dovrebbe funzionare.

Quindi, arrestare il processo mysqld. Il modo in cui lo fai varia a seconda del sistema.

Se sei un super utente nel sistema Linux, prova uno dei seguenti metodi se non conosci il metodo specifico utilizzato dalla configurazione di Mysql:

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • Alcuni sistemi non sono configurati per avere un modo elegante per arrestare mysql (o per qualche motivo mysql non risponde) e puoi forzare la terminazione di mysql con:
    • Un passaggio:pkill -9 mysqld
    • Due passaggi (meno preferito):
      • Trova l'id del processo di mysql con pgrep mysql o ps aux | grep mysql | grep -v grep
      • Supponendo che l'ID del processo sia 4969 terminare con kill -9 4969

Dopo aver fatto questo potresti voler cercare un file pid in /var/run/mysqld/ ed eliminalo

Assicurati che le autorizzazioni sul tuo socket siano tali che qualunque utente mysqld sia in esecuzione come può leggere/scrivere su di esso. Un semplice test consiste nell'aprirlo in lettura/scrittura completa e vedere se funziona ancora:

chmod 777 /var/run/mysqld/mysqld.sock

Se questo risolve il problema, puoi personalizzare le autorizzazioni e la proprietà del socket secondo necessità in base alle tue impostazioni di sicurezza.

Inoltre, la directory in cui risiede il socket deve essere raggiungibile dall'utente che esegue il processo mysqld.


Questo errore si verifica a causa di più installazioni di mysql. Eseguire il comando:

ps -A|grep mysql

Uccidi il processo usando:

sudo pkill mysql

e quindi esegui il comando:

ps -A|grep mysqld

Uccidi anche questo processo eseguendo:

sudo pkill mysqld

Ora sei completamente impostato, basta eseguire i seguenti comandi:

service mysql restart
mysql -u root -p

Avere mysql ancora ben funzionante


Linux
  1. Differenza tra /var/log/messages, /var/log/syslog e /var/log/kern.log?

  2. Impossibile connettersi all'errore 111 del server MySQL

  3. Errore irreversibile:impossibile aprire e bloccare le tabelle dei privilegi:la tabella "mysql.host" non esiste

  4. Arresto del server di database MySQL:mysqld non riuscito

  5. Impossibile connettersi al server MySQL locale tramite il socket '/var/run/mysqld/mysqld.sock' in Ubuntu 12.04.5 LTS

Come risolvere Impossibile connettersi al server MySQL locale tramite socket /var/run/mysqld/mysqld.sock (2)

[ERRORE] /usr/sbin/mysqld:impossibile aprire il file

Errore del server MySQL – "Impossibile creare un nuovo thread (errno 11)"

Ottengo un errore che dice socket bind fallito per:/var/run/renderd/renderd.sock se sono un utente normale altrimenti tutto funziona bene?

Django static_root in /var/www/... - nessuna autorizzazione a collectstatic

Perché mi manca /var/run/sshd dopo ogni avvio?