it-swarm.com.de

Festlegen des MySQL-Root-Benutzerpassworts unter OS X

Ich habe gerade MySQL unter Mac OS X installiert. Der nächste Schritt war das Festlegen des root-Benutzerpassworts.

  1. Starten Sie die Terminal-App, um auf die Unix-Befehlszeile zuzugreifen.
  2. 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?

226
madaura

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';

310
Scott

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:

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

Sudo mysqld_safe --skip-grant-tables;

  1. Stellen Sie in einem neuen Fenster eine Verbindung zur Datenbank her, legen Sie ein neues Kennwort fest, und leeren Sie die Berechtigungen. Beenden Sie:

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

  1. Stoppen Sie den Server im abgesicherten Modus und starten Sie Ihren regulären Server zurück. Das neue Passwort sollte jetzt funktionieren. Arbeitete wie ein Zauber für mich :)
190
radtek

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:

Installation: Legen Sie das root-Passwort 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 wie folgt vor:

Ändern Sie das root-Passwort:

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
84
bob

Die Anweisungen 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/bin/mysql
  4. mysql> FLUSH PRIVILEGES;
  5. mysql> ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'MyNewPass';
  6. mysql> exit oder Strg + z
  7. $ Sudo /usr/local/mysql/support-files/mysql.server stop
  8. $ Sudo /usr/local/mysql/support-files/mysql.server start
  9. /usr/local/mysql/support-files/mysql -u root -p
  10. Geben Sie das neue Passwort ein, z. B. MyNewPass

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

60
Ankireddy Polu
  1. Stoppen Sie den mysqld-Server.

    • Mac OSX:System Preferences> MySQL> Stop MySQL Server
    • Linux (vom Terminal):Sudo systemctl stop mysqld.service
  2. Starten Sie den Server im abgesicherten Modus mit Umgehung von Berechtigungen

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

    • Sudo /usr/local/mysql/bin/mysql -u root
  4. 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

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

    • Mac OSX (vom Terminal):Sudo /usr/local/mysql/support-files/mysql.server restart
    • Linux Terminal:Sudo systemctl restart mysqld
55
imbond

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. Gehen Sie zum Mysql-Installationsordner im Terminal:

    $ cd /usr/local/mysql/bin/

  4. Zugang zu MySQL:

    $ ./mysql -u root -p

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

  1. In MySQL Terminal Passwort ändern:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';

23
Deoxyseia

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 .

15
Nitish Pareek

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
10
Homam Bahrani

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.

  1. Melden Sie sich zuerst über su privileges am Terminal an.

Sudo su

  1. stoppen Sie MySQL

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

  1. im abgesicherten Modus starten:

Sudo mysqld_safe --skip-grant-tables

  1. öffne ein anderes Terminal, melde dich als su privileges than an, melde dich in mysql ohne Passwort an

mysql -u root

  1. änder das Passwort

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

  1. flush-Berechtigungen

FLUSH PRIVILEGES;

  1. Sie sind jetzt fertig
5
Prem Timsina

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:

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

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

Hinweis: das Fehlen von Sudo.

3
schminnie

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.)

3
rust

Beenden 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-Passworts

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

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

Testen

/usr/local/mysql/bin/mysql -u root ausführen

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

2
Shreyas

Genau das hat bei mir funktioniert:

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

    Sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
    
  3. 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'
    
2
sgs

Versuchen Sie dies im Terminal: /usr/local/bin/mysql_secure_installation

1
Jean-Luc Barat

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

1
djb

Wenn Sie Ihr Passwort vergessen haben oder es in Ihr MySQL ändern möchten:

  1. starten Sie Ihr Terminal und geben Sie Folgendes ein:
Sudo su
  1. Geben Sie den Pass für Ihr System ein
  2. Stoppen Sie Ihren MySQL:
Sudo /usr/local/mysql/support-files/mysql.server stop
  1. Lasse dieses Fenster OFFEN, starte das zweite Terminalfenster und gib hier ein:
mysql -u root
  1. Und ändern Sie Ihr Passwort für MySQL:
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.

  1. Flush, kündige und überprüfe deinen neuen Pass:
FLUSH PRIVILEGES;
  1. Schließen Sie alle Fenster und überprüfen Sie Ihren neuen Pass auf MySQL. Viel Glück.
1

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.

Referenzen:

0
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.

0
lafeber

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';
0
Tom Bruno