Ich habe gerade MySQL unter Mac OS X installiert. Der nächste Schritt war das Festlegen des root-Benutzerpassworts.
Unter der Unix-Eingabeaufforderung habe ich folgende Befehle ausgeführt:
$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'
Aber wenn ich den Befehl ausführen
$ ./mysql -u root
, das ist die Antwort:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Ich kann ohne Passwort in die mysql
Kommandozeile gelangen!
Warum ist das?
Versuchen Sie den Befehl FLUSH PRIVILEGES
, wenn Sie sich am MySQL-Terminal anmelden. Wenn dies nicht funktioniert, probieren Sie die folgenden Befehle im MySQL-Terminal aus
$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
Ändern Sie NEWPASSWORD mit dem von Ihnen gewünschten Passwort. Sollte alles eingestellt sein!
pdate: Ab MySQL 5.7 wurde das Feld password
in authentication_string
umbenannt. Verwenden Sie beim Ändern des Kennworts die folgende Abfrage, um das Kennwort zu ändern. Alle anderen Befehle bleiben gleich:
mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';
pdate: Auf 8.0.15 (möglicherweise bereits vor dieser Version) funktioniert die Funktion PASSWORD () nicht, wie in den Kommentaren unten erwähnt. Sie müssen verwenden:
UPDATE mysql.user SET authentication_string='password' WHERE User='root';
Wenn Sie sich nicht an das Kennwort erinnern, das Sie für root festgelegt haben, und es zurücksetzen müssen, gehen Sie folgendermaßen vor:
Sudo mysqld_safe --skip-grant-tables;
mysql -u root
Für MySQL älter als MySQL 5.7 verwenden Sie:
UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';
Verwenden Sie für MySQL 5.7+:
USE mysql;
UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';
Aktualisieren und beenden:
FLUSH PRIVILEGES;
\q
Sobald Sie MySQL installiert haben, müssen Sie das "root" -Passwort einrichten. Wenn Sie kein Root-Passwort einrichten, gibt es kein Root-Passwort und Sie benötigen kein Passwort, um sich anzumelden.
Daher müssen Sie ein root-Passwort einrichten.
Geben Sie über das Terminal Folgendes ein:
/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE
Wenn Sie einen Fehler gemacht haben oder das root-Passwort ändern müssen, gehen Sie wie folgt vor:
cd /usr/local/mysql/bin/
./mysql -u root -p
> Enter password: [type old password invisibly]
use mysql;
update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root';
flush privileges;
quit
Die Anweisungen auf der MySQL-Website sind so klar, als die oben genannten
$ Sudo /usr/local/mysql/support-files/mysql.server stop
$ Sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables
/usr/local/mysql/bin/mysql
exit
oder Strg + z$ Sudo /usr/local/mysql/support-files/mysql.server stop
$ Sudo /usr/local/mysql/support-files/mysql.server start
/usr/local/mysql/support-files/mysql -u root -p
Referenz: http://dev.mysql.com/doc/refman/5.7/de/resetting-permissions.html
Stoppen Sie den mysqld-Server.
System Preferences
> MySQL
> Stop MySQL Server
Sudo systemctl stop mysqld.service
Starten Sie den Server im abgesicherten Modus mit Umgehung von Berechtigungen
Sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
In einem neuen Terminalfenster:
Sudo /usr/local/mysql/bin/mysql -u root
Dadurch wird die mysql-Befehlszeile geöffnet. Von hier aus geben Sie ein:
UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';
FLUSH PRIVILEGES;
quit
Stoppen Sie den mysqld-Server erneut und starten Sie ihn im normalen Modus neu.
Sudo /usr/local/mysql/support-files/mysql.server restart
Sudo systemctl restart mysqld
Für neue Mysql 5.7 aus irgendeinem Grund bin Befehle von Mysql nicht an die Shell angehängt:
Starten Sie den Mac nach der Installation neu.
Starten Sie MySQL:
Systemeinstellungen> MySQL> Start-Taste
Gehen Sie zum Mysql-Installationsordner im Terminal:
$ cd /usr/local/mysql/bin/
Zugang zu MySQL:
$ ./mysql -u root -p
und geben Sie das ursprüngliche Passwort für die Installation ein.
In MySQL Terminal Passwort ändern:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
Schreiben Sie im Terminal mysql -u root -p
und drücken Sie die Eingabetaste. Geben Sie das aktuelle MySQL-Passwort ein, das Sie notiert haben müssen. Und setzen Sie das Passwort SET PASSWORD = PASSWORD('new_password');
Weitere Informationen finden Sie in dieser Dokumentation hier .
Wenn Sie das MySQL-Root-Passwort vergessen haben, sich nicht erinnern können oder einbrechen möchten ... .. können Sie das MySQL-Datenbank-Passwort über die Befehlszeile in Linux oder OS X zurücksetzen, solange Sie das Root-Benutzer-Passwort der Box kennen du bist auf:
(1) Stoppen Sie MySQL
Sudo /usr/local/mysql/support-files/mysql.server stop
(2) Starten Sie es im abgesicherten Modus:
Sudo mysqld_safe --skip-grant-tables
(3) Dies ist ein fortlaufender Befehl, bis der Vorgang abgeschlossen ist also öffne ein anderes Shell/Terminal-Fenster, melde dich ohne Passwort an:
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Ersetzen Sie im obigen UPDATE-Befehl einfach das 'Passwort' durch Ihr eigenes neues Passwort. Achten Sie darauf, die Anführungszeichen beizubehalten
(4) Sicher und leise
FLUSH PRIVILEGES;
\q
(5) Starten Sie MySQL
Sudo /usr/local/mysql/support-files/mysql.server start
Die in den vorhandenen Antworten genannten Methoden funktionieren nicht für MySQL 5.7.6 oder höher. Laut MySQL-Dokumentation ist dies der empfohlene Weg.
B.5.3.2.3 Zurücksetzen des Root-Passworts: Allgemeine Anweisungen
MySQL 5.7.6 und höher:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Referenz: https://dev.mysql.com/doc/refman/5.7/de/resetting-permissions.html
Als ich OS X Yosemite installiert habe, habe ich ein Problem mit MySQL. Ich habe viele Methoden ausprobiert, aber keine hat funktioniert. Ich habe tatsächlich einen recht einfachen Weg gefunden. Probieren Sie dies aus.
Sudo su
Sudo /usr/local/mysql/support-files/mysql.server stop
Sudo mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
Wenn Sie sich nicht an Ihr Passwort erinnern können, hat @ radteks Antwort für mich funktioniert, außer in meinem Fall hatte ich MySQL mit brew eingerichtet , was bedeutet, dass die Schritte 1 und 2 seiner Antwort musste geändert werden zu:
/usr/local/bin/mysql.server stop
/usr/local/bin/mysqld_safe --skip-grant-tables
Hinweis: das Fehlen von Sudo
.
Ich denke das sollte funktionieren:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD'
(Beachten Sie, dass Sie root wahrscheinlich durch Ihren Benutzernamen ersetzen sollten, wenn er nicht root ist.)
Sudo /usr/local/mysql/support-files/mysql.server stop
Sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
/usr/local/mysql/bin/mysql -u root
use mysql;
UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root';
FLUSH PRIVILEGES;
exit
/usr/local/mysql/bin/mysql -u root
ausführen
Geben Sie nun das neue Passwort ein, um MySQL zu starten.
Genau das hat bei mir funktioniert:
Stellen Sie sicher, dass kein anderer MySQL-Prozess ausgeführt wird. Gehen Sie folgendermaßen vor, um dies zu überprüfen:
a.From the terminal, run this command:
lsof -i:3306
If any PID is returned, kill it using kill -9 PID
b. Go To System Preferences > MySQL > check if any MySQL instances
are running, stop them.
Starten Sie MySQL mit dem Befehl:
Sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
Das Kennwort für jeden Benutzer wird in der Tabelle mysql.user in den Spalten User und authentication_string gespeichert. Wir können die Tabelle aktualisieren als:
UPDATE mysql.user SET authentication_string='your_password' where User='root'
Versuchen Sie dies im Terminal: /usr/local/bin/mysql_secure_installation
Für MySQL 8 hat sich viel geändert. Ich habe festgestellt, dass die folgende Modifikation der MySQL 8.0-Dokumentation "Zurücksetzen des Root-Passworts" mit Mac OS X funktioniert .
Erstellen Sie eine temporäre Datei $HOME/mysql.root.txt
mit dem SQL-Code, um das Root-Passwort zu aktualisieren:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';
Dies verwendet mysql_native_password
, um zu vermeiden, dass das Authentifizierungs-Plugin 'caching_sha2_password' nicht geladen werden kann . Dieser Fehler tritt auf, wenn ich die Option auslasse.
Stoppen Sie den Server, starten Sie mit der Option --init-file
, um das Root-Passwort festzulegen, und starten Sie den Server neu:
mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start
Wenn Sie Ihr Passwort vergessen haben oder es in Ihr MySQL ändern möchten:
Sudo su
Sudo /usr/local/mysql/support-files/mysql.server stop
mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
wo "new_password" - Ihr neuer Pass. Sie brauchen keinen alten Pass für MySQL.
FLUSH PRIVILEGES;
Fügen wir diese Problemumgehung hinzu, die auf meinem Laptop funktioniert!
Mac mit Osx Mojave 10.14.5
MySQL 8.0.17 wurde mit Homebrew installiert
Ich führe den folgenden Befehl aus, um den Pfad von MySQL zu finden
brew info mysql
Sobald der Pfad bekannt ist, führe ich Folgendes aus:
/usr/local/Cellar/mysql/8.0.17/bin/mysqld_safe --skip-grant-table
In einem anderen Terminal starte ich:
mysql -u root
In diesem Terminal habe ich das root-Passwort folgendermaßen geändert:
update mysql.user set authentication_string='NewPassword' where user='root';
und zum Abschluss laufe ich:
FLUSH PRIVILEGES;
Und voila das Passwort wurde zurückgesetzt.
mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET authentication_string='yourpasswd' WHERE User='root';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
Ich muss das irgendwie jedes Mal tun, wenn mein Macbook neu gestartet wird. Wenn Sie dies als persönlichen Hinweis veröffentlichen, hilft es hoffentlich auch jemand anderem.
macOS 10.14+ mit 5.7.26, installiert vom Mac OSX DMG-Installationsprogramm.
Wenn Sie versuchen, den von anderen Benutzern bereitgestellten UPDATE-Befehl zu verwenden, wird der folgende Fehler ausgegeben:
FEHLER 1820 (HY000): Sie müssen Ihr Kennwort mit der Anweisung ALTER USER zurücksetzen, bevor Sie diese Anweisung ausführen.
Kopieren Sie das Kennwort, das Sie vom Installer Open Terminal erhalten haben, und gehen Sie wie folgt vor:
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORDHERE';