User auf neuen Server umziehen
Um einen MySQL-Benutzer inklusive seines verschlüsselten Passworts und aller Rechte 1:1 auf einen neuen Server zu übertragen, nutzt du am besten das MySQL-Kommando
SHOW CREATE USER.Schritt 1: Benutzer und Passworthash auf dem alten Server auslesen
Melde dich auf dem alten Server in MySQL an:
Bash
mysql -u root -p
Führe folgenden Befehl für den gewünschten Benutzer aus (ersetze
benutzername und localhost bzw. % entsprechend):SQL
SHOW CREATE USER 'benutzername'@'localhost';
Ausgabe:
MySQL gibt dir ein fertiges
CREATE USER-Statement zurück, das das bereits gehashte Passwort enthält. Das sieht ungefähr so aus:SQL
CREATE USER 'benutzername'@'localhost' IDENTIFIED WITH 'caching_sha2_password' AS '$A$005$...' FAILED_LOGIN_ATTEMPTS 0 PASSWORD_LOCK_TIME 0 ACCOUNT UNLOCK PASSWORD EXPIRE DEFAULT;
(Kopiere dieses gesamte
CREATE USER ...-Statement).Schritt 2: Berechtigungen (Grants) auslesen
Lies direkt danach die zugewiesenen Rechte des Benutzers aus:
SQL
SHOW GRANTS FOR 'benutzername'@'localhost';
Ausgabe:
Du erhältst eine oder mehrere Zeilen mit
GRANT-Befehlen, zum Beispiel:SQL
GRANT ALL PRIVILEGES ON `meine_datenbank`.* TO `benutzername`@`localhost`;
(Kopiere alle ausgegebenen
GRANT-Zeilen).Schritt 3: Benutzer auf dem neuen Server anlegen
Melde dich auf dem neuen Server in MySQL an:
Bash
mysql -u root -p
-
Füge den in Schritt 1 kopierten
CREATE USER-Befehl ein und führe ihn aus. -
Füge die in Schritt 2 kopierten
GRANT-Befehle ein und führe sie aus. -
Aktualisiere die Rechtematrix:
SQL
FLUSH PRIVILEGES;
Alternative: Automatisiert über die Kommandozeile (für viele User)
Wenn du den Benutzer direkt über ein Terminal-Einzeiler exportieren möchtest, kannst du
pt-show-grants aus den Percona Toolkit nutzen oder pt-show-grants / mysqldump verwenden:Bash
# Exportiert CREATE USER und GRANT Statements direkt in eine SQL-Datei
mysql -u root -p -BN -e "SHOW CREATE USER 'benutzername'@'localhost';" > user_export.sql
mysql -u root -p -BN -e "SHOW GRANTS FOR 'benutzername'@'localhost';" >> user_export.sql
Diese
user_export.sql kannst du auf den neuen Server übertragen und mit mysql -u root -p < user_export.sql importieren.
No comments to display
No comments to display