Festlegen des MySQL-Root-Benutzerkennworts unter OS X

Ich habe gerade MySQL unter Mac OS X installiert. Im nächsten Schritt habe ich das root-Benutzerkennwort festgelegt, also habe ich Folgendes getan:

  1. Starten Sie die Terminal-App, um auf die Unix-Befehlszeile zuzugreifen.
  2. Unter der Unix-Eingabeaufforderung habe ich diese Befehle ausgeführt:

    $ cd /usr/local/mysql/bin $ ./mysqladmin -u root password 'password' 

Aber, wenn ich den Befehl ausführe

$ ./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 in die mysql Befehlszeile ohne irgendein Kennwort gelangen!

Warum ist das?

   

Versuchen Sie den Befehl FLUSH PRIVILEGES wenn Sie sich am MySQL-Terminal anmelden. Wenn das nicht funktioniert, versuchen Sie die folgenden Befehle im MySQL-Terminal

 $ 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!

Update : Ab MySQL 5.7 wurde das password in authentication_string umbenannt. Verwenden Sie zum Ä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'; 

Wenn Sie sich nicht an das Passwort erinnern, das Sie für root festgelegt haben und es zurücksetzen müssen, gehen Sie folgendermaßen vor:

  1. Stoppen Sie den mysqld-Server, dies variiert je nach Installation
  2. Führen Sie den Server im abgesicherten Modus mit Umgehung der Berechtigungen aus

sudo mysqld_safe --skip-grant-tables;

  1. In einem neuen Fenster verbinde dich mit der database, setze ein neues Passwort und lege die Berechtigungen ab und quit:

mysql -u root

Für MySQL älter als MySQL 5.7 verwenden Sie:

UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';

Für MySQL 5.7 verwenden Sie:

USE mysql;

UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';

Aktualisieren und beenden:

FLUSH PRIVILEGES;

\q

  1. Stoppen Sie den Safe-Mode-Server und starten Sie Ihren regulären Server zurück. Das neue Passwort sollte jetzt funktionieren. Arbeitete wie ein Zauber für mich 🙂

Sobald Sie MySQL installiert haben, müssen Sie das “root” -Kennwort festlegen. Wenn Sie kein root-Passwort einrichten, dann gibt es kein root-Passwort und Sie brauchen kein Passwort, um sich anzumelden.

Also müssen Sie ein root-Passwort einrichten.

Mit dem Terminal geben Sie Folgendes ein:

Installation: Legen Sie das Root-Benutzerpasswort fest:

 /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 folgendermaßen vor:

Root-Passwort ändern:

 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 statementen auf der MySQL-Website sind so klar, als die oben genannten

 1. sudo /usr/local/mysql/support-files/mysql.server stop 2) sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables 3) /usr/local/mysql/support-files/mysql 4) mysql> FLUSH PRIVILEGES; 5) mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; 6) Ctrl + z 7) sudo /usr/local/mysql/support-files/mysql.server start 8) /usr/local/mysql/support-files/mysql -u root -p 9) enter the new password ie MyNewPass 

http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

  1. Stoppen Sie den mysqld-Server.

    • Mac OS X: System Preferences > MySQL > Stop MySQL Server
    • Linux (Vom Terminal): sudo systemctl stop mysqld.service
  2. Starten Sie den Server im abgesicherten Modus mit Privilegienumgehung

    • Vom Terminal aus: sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. In einem neuen Terminalfenster:

    • sudo /usr/local/mysql/bin/mysql -u root
  4. Dies öffnet die mysql-Befehlszeile. Von hier aus geben Sie ein:

    • UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';

    • FLUSH PRIVILEGES;

    • quit

  5. Stoppen Sie den mysqld-Server erneut und starten Sie ihn im normalen Modus neu.

    • Mac OSX (Von Terminal): sudo /usr/local/mysql/support-files/mysql.server restart
    • Linux Terminal: sudo systemctl restart mysqld

Für neue Mysql 5.7 aus irgendeinem Grund Bin-Befehle von Mysql nicht an die Shell angehängt:

  1. Starten Sie den Mac nach der Installation neu.

  2. Starten Sie Mysql:

    Systemeinstellungen> Mysql> Start-Taste

  3. Gehe zu Mysql Installationsordner im Terminal:

    $ cd /usr/local/mysql/bin/

  4. Zugang zu Mysql:

    $ ./mysql -u root -p

und geben Sie das anfängliche Passwort für die Installation ein.

  1. 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 Return. Geben Sie das aktuelle mysql-Passwort ein, das Sie notiert haben müssen. Und setze das Passwort SET PASSWORD = PASSWORD('new_password');

Weitere Informationen finden Sie in dieser Dokumentation.

Wenn Sie das MySQL-root-Passwort vergessen haben, sich nicht erinnern können oder wollen … .. können Sie das mysql-databasepasswort von der Kommandozeile in Linux oder OS X zurücksetzen, solange Sie das root-Benutzerpasswort der Box kennen Du bist eingeschaltet:

(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 wird ein fortlaufender Befehl sein, bis der process beendet ist, also öffne ein anderes Shell / Terminal-Fenster und 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 ein eigenes neues Passwort. Achten Sie darauf, die Anführungszeichen beizubehalten

(4) Sparen und ganz

 FLUSH PRIVILEGES; \q 

(5) Starten Sie MySQL

 sudo /usr/local/mysql/support-files/mysql.server start 

Als ich OS X Yosemite installiert habe, habe ich Probleme mit Mysql bekommen. Ich habe viele Methoden ausprobiert, aber keine funktionierte. Ich habe einen recht einfachen Weg gefunden. Probieren Sie es aus.

  1. Melden Sie sich als erstes Terminal von su-Privilegien an.

sudo su

  1. stoppe mysql

sudo /usr/local/mysql/support-files/mysql.server stop

  1. Im abgesicherten Modus starten:

sudo mysqld_safe --skip-grant-tables

  1. Öffnen Sie ein anderes Terminal, melden Sie sich als su Privilegien an, loggen Sie sich ohne Passwort ein

mysql -u root

  1. Änder das Passwort

UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';

  1. Flush Privilegien

FLUSH PRIVILEGES;

  1. Du bist jetzt fertig

Wenn Sie sich an Ihr Passwort nicht erinnern können, hat @ radteks Antwort für mich funktioniert, außer in meinem Fall hatte ich MySQL mit brew eingerichtet, was bedeutete, dass die Schritte 1 und 2 seiner Antwort geändert werden mussten zu:

  1. /usr/local/bin/mysql.server stop

  2. /usr/local/bin/mysqld_safe --skip-grant-tables

Hinweis: das Fehlen von sudo .

Stoppen von MySQL Server

sudo /usr/local/mysql/support-files/mysql.server stop

Starten von MySQL im abgesicherten Modus

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

Ändern des Root-Passwortes

/usr/local/mysql/bin/mysql -u root

 use mysql; UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root'; FLUSH PRIVILEGES; exit 

Testen

Führen Sie /usr/local/mysql/bin/mysql -u root

Geben Sie nun das neue Passwort ein, um MySQL zu verwenden.

Wenn Sie Ihr Passwort vergessen haben oder es in Ihre mysql ändern wollen:

  1. starte dein Terminal und gib ein:
 sudo su 
  1. Geben Sie pass für Ihr System ein
  2. Stoppen Sie Ihre MySQL:
 sudo /usr/local/mysql/support-files/mysql.server stop 
  1. Verlassen Sie dieses Fenster, öffnen Sie das zweite Terminalfenster und geben Sie hier ein:
 mysql -u root 
  1. Und ändere dein Passwort für mysql:
 UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; 

wo “neues_passwort” – dein neuer Pass. Sie benötigen keinen alten Pass für mysql.

  1. Spülen, beenden und überprüfen Sie Ihren neuen Pass:
 FLUSH PRIVILEGES; 
  1. Schließen Sie alle Fenster und überprüfen Sie Ihren neuen Pass auf mysql. Viel Glück.

Genau das hat bei mir funktioniert:

  1. Stellen Sie sicher, dass kein anderer MySQL-process läuft. Um dies zu überprüfen, machen Sie Folgendes:

      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. 
  2. Starten Sie MySQL mit dem Befehl:

     sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables 
  3. Das Passwort für jeden Benutzer ist in der Tabelle mysql.user unter 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' 

Für MySQL 8 hat sich viel geändert. Ich habe festgestellt, dass die folgende Änderung der MySQL 8.0-Dokumentation “So wird das Root-Passwort zurückgesetzt werden” mit Mac OS X funktioniert.

Erstellen Sie eine temporäre Datei $HOME/mysql.root.txt mit dem SQL, um das root-Passwort zu aktualisieren:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

Dies verwendet mysql_native_password , um das Authentifizierungs-Plugin zu vermeiden ‘caching_sha2_password’ kann nicht geladen werden Fehler, den ich bekomme, wenn ich die Option weglasse.

Stoppen Sie den Server, starten Sie mit einer Option --init-file , um das root-Passwort --init-file , und starten Sie den Server neu:

mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start