Warum kann ich den MySQL-Dienst unter Debian nicht beenden?

11

Ich habe gerade versucht, ein Upgrade von Debian Squeeze auf Instable durchzuführen, indem ich 'Squeeze' durch 'Instable' in ersetzt habe /etc/apt/sources.list. Das Upgrade verlief reibungslos, mit Ausnahme von MySQL, das fehlschlug, weil es MySQL nicht stoppen konnte.

/etc/init.d/mysql stopGibt einfach zurück, dass es fehlgeschlagen ist, aber wenn ich versuche, den Status /etc/init.d/mysql statusdamit zu erhalten, erhalte ich diesen Fehler:

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 läuft einwandfrei und ich habe die Berechtigungen für debian-sys-wart in phpmyadmin überprüft und es ist erlaubt, alles zu tun, aber nur eine Verbindung von herzustellen localhost.

anon
quelle

Antworten:

6

Versuche dies:

  1. sudo cat /etc/mysql/debian.cnfund suchen Sie nach dem Passwort, das unter den Abschnitten [client]und aufgeführt [mysql_upgrade]ist

  2. mysql -u root -p password Dies ist das ursprüngliche MySQL-Root-Passwort

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

  4. /etc/init.d/mysql restart

Das ist die Lösung und dies ist die Begründung dahinter, wenn Sie interessiert sind.

Kez
quelle
Wie unten erwähnt, sollte dies seinGRANT ALL PRIVILEGES ON *.*
Dave
2

Ein Update zur Antwort. In Schritt 3 musste ich verwenden

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

In der Zeit nach "EIN" befinden sich Sternchen. Arbeitete für MySql 5.1

Frank
quelle
1

Das MySQL-Referenzhandbuch besagt, dass Sie dies tun können:

  1. Melden Sie sich bei Ihrem System als Unix-Benutzer an, unter dem der mysqldServer ausgeführt wird (z. B. mysql).
  2. Suchen Sie die .pidDatei, die die Prozess-ID des Servers enthält. Der genaue Speicherort und Name dieser Datei hängt von Ihrer Distribution, Ihrem Hostnamen und Ihrer Konfiguration ab. Gemeinsame Positionen sind /var/lib/mysql/, /var/run/mysqld/und /usr/local/mysql/data/. Im Allgemeinen hat der Dateiname eine Erweiterung von .pidund beginnt mit mysqlddem Hostnamen Ihres Systems.

Sie können den MySQL-Server stoppen, indem Sie einen normalen Kill (nicht Kill -9) an den mysqld-Prozess senden. Verwenden Sie dazu den Pfadnamen der PID-Datei im folgenden Befehl:

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

Dieser Teil: cat /mysql-data-directory/host_name.pidgibt den Inhalt der Datei zurück, bei der es sich um die Prozess-ID handelt.

Nabil Kadimi
quelle