[Anleitung] MySQL-Root-Passwort vergessen - über SSH ändern

Status
Für weitere Antworten geschlossen.

David87

Benutzer
Mitglied seit
01. Aug 2013
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Hallo Leute,

ich bin es mal wieder und heute bin ich beim MySQL Dienst angekommen, ich habe mittlerweile sämtliche Daten übertragen und bin dabei alle alten Dienste wieder zum laufen zu bringen. Weil ich in der Freizeit gelegentlich PHP Programmiere habe ich einige Projekte hier liegen. ich habe geschummelt um mir den Aufwand mit den Anlegen der Benutzer und der Zuweisung der Tabellen zu erleichtern. Ich habe dazu. meine Tabellen nach /volume1/@databases kopiert. Natürlich auch den mysql ordner, das sollte so auch sein, wegen den Rechten. Anschließend habe ich die Tabellen den Besitzer admin und der Gruppe root Rekursiv übergeben da mysqld ansonsten die Dateien nicht nutzen kann. Jetzt habe ich aber glatt das Root Kennwort vergessen, welches in der wiederhergestellten Konfiguration vorliegt. Erst wollte ich hier nachfragen, aber ich kenne ja den weg sehr gut. Der Linux Befehl "find" half mir beim Aufspüren der nötigen Dateien. Ab und an vergesse ich mein Kennwort schon nach 10 Minuten, betrifft neben Windows auch Linux Kennwörter. Dann hilft in vielen fällen immer nur das zurücksetzen und das erläutere ich wie es mit MySQL an der DiskStation geht. Ich habe die DS212j.

Als erstes muss man SSH aktivieren, dies tut man über die DSM Administrationsoberfläche unter Systemsteuerung und Terminal. Man aktiviert dort SSH. SSH ist letztlich schon aktiviert nur die Anmeldung wird bis dahin nicht gewährt. Man sollte diesen Port nach außen nicht unbedingt auf machen, denn Angriffe auf diesen Port sind sehr häufig.
Nun benötigt man einen SSH Client. Ich benutze Putty. Es gibt aber auch noch andere Versionen. Man verbindet sich via SSH auf Port 22 zur DiskStation via IP oder dem Gerätenamen, der Benutzername ist root aber das Kennwort ist das selbe wie des Benutzers admin. Bei mir funktionierte auch der Benutzername admin, aber ob das Zufall ist, ich weiß es nicht, denn im Internet steht man meldet sich mit root an.

Wenn man eingeloggt ist bekommt man genau dies angezeigt oder eine ähnliche Art
Rich (BBCode):
BusyBox v1.16.1 (2013-04-16 20:13:10 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

Nun müssen wir den laufenden MySQL Dienst erstmal beenden. Diesen Befehl kopieren wir und fügen ihn z.B. mit einem Rechtsklick bei Putty ein.
Rich (BBCode):
/usr/syno/etc/rc.d/S21mysql.sh stop

es sollte dies erscheinen...
Rich (BBCode):
Stopping MySQL...
Shutting down MySQL.... SUCCESS!

Nun müssen wir einen Speziellen Modus des MySQL Servers starten, damit er uns auch ohne Passwort an die Daten lässt. Dies geschieht mit:
Rich (BBCode):
/usr/syno/mysql/bin/mysqld_safe --skip-grant-tables
Ihr werdet sicher so eine Ausgabe nun erhalten haben:
Rich (BBCode):
YYMMDD HH:MM:SS mysqld_safe Logging to '/var/services/mysql/server.err'.
YYMMDD HH:MM:SS mysqld_safe Starting mysqld daemon with databases from /var/services/mysql
Ab dann müsst ihr eine weitere Verbindung zur DiskStation mit dem SSH Client aufbauen. Ihr müsst das aktuelle aber auch unbedingt offen lassen. Eine schnelle zweite Verbindung zur DiskStation kann man bei Putty mit einem rechten klick auf die Titelleiste des offenen Putty Fenster realisieren, in dem Kontextmenü muss der Eintrag "Duplicate Session" gewählt werden. Anschließend loggt man sich wieder mit root und dem Kennwort von admin ein.

Nun Führen wir den SQL Client als Benutzer root auf der Datenbank mysql aus.
Rich (BBCode):
/usr/syno/mysql/bin/mysql -u root -D mysql
Nun wir sollten Verbunden sein und sehen folgende Ausgabe:
Rich (BBCode):
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.49 Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

No entry for terminal type "xterm";
using dumb terminal settings.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Jetzt müssen wir den SQL Befehl an den Server senden, als Beispielkennwort nehme ich hier MeinGeheimesKennwort. Der SQL Befehl muss so aussehen.
Rich (BBCode):
UPDATE user SET password=PASSWORD("MeinGeheimesKennwort") WHERE user='root';
Diese Ausgabe sollte so ungefähr erfolgen wenn ihr diese mit Enter an den Server sendet. Wichtig ist das Query OK und das einige Zeilen betroffen waren.
Rich (BBCode):
Query OK, 3 rows affected (0.07 sec)
Rows matched: 3  Changed: 3  Warnings: 0

Nun müssen wir nur noch die Rechte neuladen mit
Rich (BBCode):
flush privileges;
Beid er Rückgabe sollte auch ein OK übermittelt werden, doch hier werden keine Zeilen verändert.

Nun wären wir fertig und können uns beim MySQL Server mit
Rich (BBCode):
quit
abmelden. Das letzte SSH fenster schließen wir dann einfach mit
Rich (BBCode):
exit

In meinem Produktiven Test und im Testlauf konnte ich den Spezielen Servermodus sowie den benutzten Port nicht sauber schließen, sodas ich das aktive SSH Fenster schloss, da mit STRG + C das Programm sich nicht beenden lies. Anschließend loggte ich mich in der Administrationsoberfläche als Administrator ein und starte das System neu. Bei mir ertönt ein Signal wenn das System Arbeitsbereit ist und somit loggte ich mich ein und prüfte meine Änderung und nach dem ich meine Logindaten entsprechend angab erschien rechter Hand

Rich (BBCode):
Datenbank-Server

Server: Localhost via UNIX socket
Software: MySQL
Software-Version: 5.1.49 - Source distribution
Protokoll-Version: 10
Benutzer: root@localhost
Server Zeichensatz: UTF-8 Unicode (utf8)

Es hat geklappt und nun habe ich alles wieder gerettet ohne mir aufwendig die Nutzer anzulegen, Passwörter aus jeder Config zu kopieren und die Rechte zuzuweisen.

Ich hoffe ich kann jemanden bei Gelegenheit damit helfen. So jetzt erstmal schlafen..

Grüße
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Sehr schöne Anleitung. Aber das Zurücksetzen des root MySQL-Passworts kann in der Regel auch einfach über den Disk Station Manager erfolgen.

-> Systemsteuerung -> Standard Wiederherstellen -> MySQL-Datenbank-Passwort zurücksetzen
 

David87

Benutzer
Mitglied seit
01. Aug 2013
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Das hätte ich wissen müssen dann hätte ich den Beitrag der nun sinnlos ist nicht erstellen brauchen und es letztlich auch einfacher gehabt. Vor allem wenn es eine so einfache und schnelle Lösung gibt. Sorry für das erstellte überflüssige Thema.
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Neee - eine Entschuldigung ist nicht notwendig. Ich find das Thema überaus interessant.
Da kann man ja auch was draus lernen! :)
 

zeckenhorst

Benutzer
Mitglied seit
06. Mrz 2014
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
nee, super tip. hab das sql root pwd bei ner ds mit dsm5. geloost, verloren.
THX dbmann
 

David87

Benutzer
Mitglied seit
01. Aug 2013
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
nee, super tip. hab das sql root pwd bei ner ds mit dsm5. geloost, verloren.
THX dbmann

meinst du dies ironisch? Worauf bezieht sich das "nee"? Super Tip kann ironisch gesehe werden wenn es Probleme gab, da ich ja auch nicht schrieb ob es mit den anderen Versionen auch so geht. DSM5 ist ebend neu und ich weiß nicht ob es mit der SSH Methode so noch geht, eigentlich ja aber ich kann es nicht garnatieren und ob du das Passwort so verloren hast, weiß ich nicht, aber du könntest natürlich meine Methode positiv gesehen haben und gemeint haben das du die Wiederherstellung via DSM genutzt hast und das Passwort verloren hast.

Ich habe selber gerade leider gerade kaum Zeit. Sonst hätte ich 2 Dinge zu untersuchen.. VPN (meine Abbrüche (nach 3 Minuten) zu untersuchen), pyload (startet nicht mehr).
Die 2-jährige Umschlung zum IT-Kaufmann, was sonst 3 Jahre sind ist ebend nicht ohne und das ich nebenbei noch JAVA erlerne ist etwas schwierig. Hinzu kommt die Facharbeit die ich schreiben muss und auch noch den Shop xt:commerce handeln können soll. Ich habe noch nicht mal mich mit dem DSM5 beschäftigt, aktuallisiert habe ich es, sonst spamt mich die NAS voll. Ich wollte es auf Barrierefreiheit testen. Ein Blinder meinte er würde irgendwie mit den Entwicklern kontakt aufgebaut haben um dies Barrierefrei zu haben. Schließlich waren bisher Desktop-Symbole das einzige was die Sprachausgabe vorlas. In der Regel nute ich auch nur Vergrößerung. Im Sommer besteht die Chance, 3 Wochen Urlaub!
 

zeckenhorst

Benutzer
Mitglied seit
06. Mrz 2014
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
naaa. war nicht ironisch gemeint.

ich benutze imo die DSM v5.0.-4458 .

1. per ssh/telnet einloggen(als root
2. schauen das niemand auf der "kiste ist und kein load ist
3. killall mysqld
4. dann ab dem punkt: "/usr/syno/mysql/bin/mysqld_safe --skip-grant-tables" von dir weiter machen
5. shutdown -r now

ich wees punkt 3 ^^ ...

in diesem Sinne, besten Dank noch einmal!
have a nice we


//ahhh jetzt raffe ich auch wie du es verstanden hast....neee mit dem "geloost... das war die vorgeschichte quasi.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat