it-swarm.com.de

Das MySQL-Root-Passwort konnte nicht zurückgesetzt werden, es wurde alles versucht

Lassen Sie uns zunächst klarstellen, dass ich alle Fragen von Ask Ubuntu zu diesem Problem gelesen und alle Schritte aus den offiziellen Dokumenten befolgt habe:

help.ubuntu.com

dev.mysql.com

Ich benutze Ubuntu 16.04.1 LTS

Bevor also jemand etwas vorschlägt, was ich wahrscheinlich schon ausprobiert habe, werde ich zeigen, was ich getan habe:

[email protected]:/# Sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.

MySQL wurde korrekt gestoppt.

[email protected]:/# Sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
[1] 3316
[email protected]:/#

Hier weiß ich nicht, ob das funktioniert hat oder nicht, also folge ich trotzdem den Schritten.

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

Es scheint nicht zu funktionieren, da der Dienst nicht gestartet wurde. Da ich mit den nächsten Schritten nicht fortfahren kann, versuche ich die andere Methode (Bereinigen).

Nach dem Gebrauch:

Sudo apt-get --purge remove
Sudo apt-get install

Ich versuche den nächsten Schritt:

[email protected]:/# mysqladmin -u root password MyNewPassword
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
[email protected]:/#

Da dies auch nicht funktioniert, habe ich andere im MySQL-Web erwähnte Methoden ausprobiert:

Also töte ich Mysql-Prozess wie dort gezeigt und dann benutze ich

[email protected]:/# mysqld_safe --init-file=/home/me/mysql-init &
[1] 5267
[email protected]:/# 2017-02-01T12:47:49.250083Z mysqld_safe Logging to syslog.
2017-02-01T12:47:49.252427Z mysqld_safe Logging to '/var/log/mysql/error.log'.

2017-02-01T12:47:49.254765Z mysqld_safe Logging to '/var/log/mysql/error.log'.

2017-02-01T12:47:49.257045Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

[1]+  Salida 1                mysqld_safe --init-file=/home/me/mysql-init
[email protected]:/#

Jetzt, als ich keine Optionen mehr hatte, probiere ich auch eine andere hier auf Ask Ubuntu erwähnte Methode aus:

[email protected]:/# Sudo dpkg-reconfigure mysql-server-5.7
Checking if update is needed.
This installation of MySQL is already upgraded to 5.7.17, use --force if you still need to run mysql_upgrade
[email protected]:/#

Und jetzt habe ich wirklich keine Optionen mehr, also sind alle Vorschläge willkommen.

9
Ilovelinux

Ich hatte das gleiche Problem und löste es, indem ich diese Zeile ausführte:

$ Sudo mkdir /var/run/mysqld; Sudo chown mysql /var/run/mysqld

vor dem Ausführen dieser Zeile:

[email protected]:/# mysqld_safe --init-file=/home/me/mysql-init &

Für mich hat diese Schritte besser funktioniert.

Ich denke, es gibt einen saubereren Weg, dies zu tun, aber für mich war es eine schnelle und effiziente Umgehung.

16
odradek

Ich konnte mysql nicht dazu bringen, neu zu installieren, egal was ich versuchte. Am Ende musste ich nur versuchen, das Passwort zurückzusetzen.

Ich musste diesen Weg mit Ubuntu 16.04.1 LTS gehen. Ich habe eine Stunde oder länger damit verbracht, alle anderen Vorschläge von der MySql-Website auf SO sowie die Fragen und Antworten zu AskUbuntu zu testen.

Hinweis: Während die Meldung Passwort für Benutzer root eingeben angezeigt wurde, hatte ich nicht das ursprüngliche Passwort, also habe ich das gleiche Passwort eingegeben, das als neues Passwort verwendet werden soll.

Hinweis: Es gab kein /var/log/mysqld.log nur /var/log/mysql/error.log

Beachten Sie auch, dass dies bei mir nicht funktioniert hat:
Sudo dpkg-reconfigure mysql-server-5.7

Noch tat:
Sudo dpkg-reconfigure --force mysql-server-5.5

MySQL-Dienstverzeichnis erstellen.
Sudo mkdir /var/run/mysqld

Erteilen Sie dem MySQL-Benutzer die Berechtigung, in das Dienstverzeichnis zu schreiben.
Sudo chown mysql: /var/run/mysqld

Dann:

  1. töte die aktuelle mysqld pid
  2. starte mysqld mit Sudo/usr/sbin/mysqld &
  3. führen Sie/usr/bin/mysql_secure_installation aus

    Ausgabe von mysql_secure_installation

    root @ myServer: ~ #/usr/bin/mysql_secure_installation

    Sichern der MySQL Server-Bereitstellung.

    Geben Sie das Passwort für den Benutzer root ein:

    VALIDATE PASSWORD PLUGIN kann zum Testen von Passwörtern und zur Verbesserung der Sicherheit verwendet werden. Es prüft die Stärke des Passworts und ermöglicht den Benutzern, nur die Passwörter festzulegen, die sicher genug sind. Möchten Sie das VALIDATE PASSWORD-Plugin einrichten?

    Drücken Sie y | Y für Ja, eine beliebige andere Taste für Nein: nein. Verwenden Sie das vorhandene Passwort für root. Passwort für root ändern? ((Drücken Sie y | Y für Ja, eine andere Taste für Nein): y

    Neues Passwort:

    Neues Passwort erneut eingeben: Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer, sodass sich jeder bei MySQL anmelden kann, ohne dass ein Benutzerkonto dafür erstellt werden muss. Dies dient nur zu Testzwecken und soll die Installation etwas reibungsloser gestalten. Sie sollten sie entfernen, bevor Sie in eine Produktionsumgebung wechseln.

    Anonyme Benutzer entfernen? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): y Erfolgreich.

    Normalerweise sollte root nur von 'localhost' aus eine Verbindung herstellen dürfen. Dies stellt sicher, dass niemand das Root-Passwort aus dem Netzwerk erraten kann.

    Root-Anmeldung aus der Ferne nicht zulassen? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): y Erfolgreich.

    Standardmäßig wird MySQL mit einer Datenbank namens 'test' ausgeliefert, auf die jeder zugreifen kann. Dies ist ebenfalls nur zum Testen gedacht und sollte vor dem Wechsel in eine Produktionsumgebung entfernt werden.

    Testdatenbank entfernen und darauf zugreifen? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): y

    • Testdatenbank wird gelöscht ... Erfolgreich.

    • Berechtigungen für Testdatenbank entfernen ... Erfolgreich.

    Durch erneutes Laden der Berechtigungstabellen wird sichergestellt, dass alle bisher vorgenommenen Änderungen sofort wirksam werden.

    Berechtigungstabellen jetzt neu laden? (Drücken Sie y | Y für Ja, eine andere Taste für Nein): y Erfolgreich.

    Alles erledigt!

1
JGlass

Ich hatte das gleiche Problem und löste es mit:

# /etc/init.d/mysql stop
# service mysql stop
# mkdir -p /var/run/mysqld
# chown mysql:mysql /var/run/mysqld
# mysqld_safe --skip-grant-tables &
# mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=password('1234') where user='root';

(Hier enthält authentication_string das Passwortfeld.)

0
Rajani