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.