Perché non riesco a interrompere il servizio MySQL su Debian?


11

Ho appena provato a passare da debian squeeze a unstable sostituendo "squeeze" con "unstable" in /etc/apt/sources.list. L'aggiornamento è andato liscio, tranne MySQL, che non è riuscito perché non è riuscito a fermare MySQL.

/etc/init.d/mysql stoprestituisce semplicemente che non è riuscito, ma se provo a ottenere lo stato con /etc/init.d/mysql statusquesto mi dà questo errore:

me@debian:~$ sudo /etc/init.d/mysql status
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

MySQL funziona bene e ho controllato i permessi per debian-sys-maint in phpmyadmin ed è autorizzato a fare tutto, ma solo connettermi localhost.

Risposte:


6

Prova questo:

  1. sudo cat /etc/mysql/debian.cnfe cerca la password elencata in entrambe le sezioni [client]e[mysql_upgrade]

  2. mysql -u root -p password essendo la password di root originale di MySQL

  3. GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '*the password obtained from step 1*';

  4. /etc/init.d/mysql restart

Questa è la soluzione e questo è il ragionamento alla base, se sei interessato.


Come menzionato di seguito, questo dovrebbe essereGRANT ALL PRIVILEGES ON *.*
Dave,

2

Un aggiornamento alla risposta. Nel passaggio 3, ho dovuto usare

GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'the password obtained from step 1';

Ci sono asterischi intorno al periodo dopo "ON". Ha funzionato per MySql 5.1


1

Il Manuale di riferimento di MySQL dice che puoi farlo:

  1. Accedere al sistema come utente Unix su cui mysqldviene eseguito il server (ad esempio mysql).
  2. Individua il .pidfile che contiene l'ID processo del server. La posizione e il nome esatti di questo file dipendono dalla distribuzione, dal nome host e dalla configurazione. Luoghi comuni sono /var/lib/mysql/, /var/run/mysqld/e /usr/local/mysql/data/. In genere, il nome del file ha un'estensione .pide inizia con uno mysqldo il nome host del sistema.

È possibile arrestare il server MySQL inviando un normale kill (non kill -9) al processo mysqld, usando il nome del percorso del file .pid nel seguente comando:

    kill `cat /mysql-data-directory/host_name.pid`

Questa parte: cat /mysql-data-directory/host_name.pidrestituisce il contenuto del file, che è l'id del processo.

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.