La mia installazione di MySQL è rotta. Come riconfigurarlo completamente?


20

Ecco i seguenti comandi che ho eseguito.

$ sudo service mysql start
mysql start/running

$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

$ aptitude search mysql |grep ^i
i   libapache2-mod-auth-mysql       - Module Apache 2 pour l'authentification vi
i   libdbd-mysql-perl               - Perl5 database interface to the MySQL data
i   libmysqlclient16                - MySQL database client library             
i   mysql-client-5.1                - MySQL database client binaries            
i   mysql-client-core-5.1           - MySQL database core client binaries       
i   mysql-common                    - MySQL database common files, e.g. /etc/mys
i   mysql-server-5.1                - MySQL database server binaries and system 
i   mysql-server-core-5.1           - MySQL database server binaries            
i   php5-mysql                      - MySQL module for php5                     

alm - trova il tuo mysql.log cat /var/log/mysql.loge modifica la tua risposta con questo file ....
hhlp

5
Mi piace il modo in cui hai usato grep ^ i lì. Abbastanza intelligente.
Luis Alvarado,

Che cosa fa esattamente? aptitude è strumenti di installazione.
user4951

@JimThio Ecco per trovare i pacchetti installati relativi a questa domanda.
Ripristina Monica - ζ--

Risposte:


16

Prima di reinstallare controllare / var / log / mysql per i file di registro che possono contenere indizi sul perché mysql non funziona. Se non ci sono registri, il registro su file potrebbe non essere abilitato nella configurazione: Configura registro errori Mysql

Per reinstallare qualsiasi pacchetto, controllare la versione installata con

dpkg -l|grep mysql-server

quindi per l'uso della versione 5.7

sudo apt-get install mysql-server-5.7 --reinstall

Se ciò non ti consente di riconfigurare il pacchetto che puoi usare

sudo dpkg-reconfigure mysql-server-5.7

sudo dpkg-reconfigure mysql-server-5.1 ha fatto il trucco per me quando sono
passato dall'11.10

7

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

Nelle installazioni MySQL è possibile specificare dove avremo il socket per le connessioni locali. Quando si effettuano aggiornamenti non è raro vedere l'errore "Impossibile connettersi al server MySQL locale socket-through". Vediamo come risolvere questo problema.

L'errore è simile al seguente:

Mysql-u root-p
Enter password:
ERROR 2002 (HY000): Can not connect to local MySQL server-through socket '/ tmp / mysql.sock' (2)

attraverso pspossiamo vedere se è specificato dal parametro e il luogo in cui si trova:

# ps -fea | grep mysqld
mysql    17661 14003  1 Feb19 ?        00:24:59 /usr/local/mysql-percona/libexec/mysqld --basedir=/usr/local/mysql-percona --datadir=/var/data/mysql/datadir/data --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log
root     23790  7840  0 09:25 pts/0    00:00:00 grep mysqld

In questo caso vediamo che è in /var/lib/mysql/mysql.sock. Se non trovato come parametro, cerca nella sezione mysqld di /etc/my.cnfper trovare il parametro:

grep socket /etc/my.cnf
socket=/var/lib/mysql/mysql.sock

Se sappiamo dove si trova, è necessario modificare lo stesso file ( /etc/my.cnf) e aggiungere il parametro socket client della sezione:

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

1
Questo è quello che stavo per rispondere. So già che questa è la risposta corretta per quasi tutti i problemi correlati come questo. Ti farà +1 quando avrò di nuovo l'abilità.
Luis Alvarado,

grazie per la spiegazione approfondita! nel mio caso, anche se ho specificato un socket in my.cnf, esso non lo ha ascoltato (i parametri mostrati in 'ps' sono vuoti e nessuna connessione possibile. soluzione alternativa: aggiungi 'protocoll = tcp' alla sezione client in my.cnf a forza usando tcp e non il socket
Tapper

2

Per gli ultimi visualizzatori:
sono arrivato all'errore simile quando non sono riuscito ad aggiornare il pacchetto mysql-server , ma ho trovato che questo risolto il mio problema . Quando sudo apt-get install -fnon funziona, prova sudo apt-get purge mysql*. Ora puoi reinstallare mysql-server.


1
si prega di notare che sudo apt-get purge mysqlnon conservare i database
Nelson Owalo,

1

Uno dei problemi in cui mi imbatto è sapere con quale versione sto riscontrando problemi. Questa è stata un'idea chiara:

$ aptitude search mysql |grep ^i

Ma ecco quello che ho trovato critico nel problema:

$ apt-get --reinstall install mysql-server-5.x

(dove x è la versione. Se non lo aggiungi, potresti utilizzare dpkg errato.


0

Questo ha funzionato per me

sudo apt purge mysql*
sudo apt autoremove
sudo apt autoclean
sudo apt install mysql-server

Descrizione

1) Il primo comando rimuove tutto ciò che riguarda MySQL con i loro file di configurazione.

2) Il secondo rimuove quei pacchetti che non sono più necessari.


Refrences [!]:

1) DigitalOcean

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.