web-dev-qa-db-ger.com

Was ist das Standard-Root-Passwort für MySQL 5.7?

Anmeldung bei MySQL-Datenbank nach Neuinstallation mit Root-ID und leerem/keinem Kennwort nicht möglich, wie dies bei anderen älteren MySQL-Versionen der Fall ist

53
Ryan

Nachdem Sie MySQL-community-server 5.7 von fresh unter Linux installiert haben, müssen Sie das temporäre Kennwort in /var/log/mysqld.log suchen, um sich als root anzumelden.

  1. grep 'temporary password' /var/log/mysqld.log
  2. Lauf mysql_secure_installation, um das neue Passwort zu ändern

ref: http://dev.mysql.com/doc/refman/5.7/de/linux-installation-yum-repo.html

90
Ryan

Es gibt so viele Antworten auf die Frage, ob Sie mysql neu installieren oder eine Kombination aus verwenden sollen

mysqld_safe --skip-grant-tables

und/oder

UPDATE mysql.user SET Password=PASSWORD('password')

und/oder etwas anderes ...

... Nichts davon hat bei mir funktioniert


Hier ist, was für mich unter Ubuntu 18.04 von oben funktioniert hat

Mit besonderer Anerkennung an diese Antwort dafür, dass sie mich aus der Frustration darüber herausgeholt haben ...

$ Sudo apt install mysql-server
$ Sudo cat /etc/mysql/debian.cnf

Beachten Sie die Zeilen, die lauten:

user     = debian-sys-maint
password = blahblahblah

Dann:

$ mysql -u debian-sys-maint -p
Enter password: // type 'blahblahblah', ie. password from debian.cnf

mysql> USE mysql
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User             | Host      | plugin                |
+------------------+-----------+-----------------------+
| root             | localhost | auth_socket           |
| mysql.session    | localhost | mysql_native_password |
| mysql.sys        | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> COMMIT;  // When you don't have auto-commit switched on

Entweder:

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

Oder:

// For MySQL 5.7+
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';

Dann:

mysql> FLUSH PRIVILEGES;
mysql> COMMIT;  // When you don't have auto-commit switched on
mysql> EXIT

$ Sudo service mysql restart
$ mysql -u root -p
Enter password: // Yay! 'new_password' now works!
85
Stewart

MySQL 5.7 hat das sichere Modell geändert: Für die Anmeldung als MySQL-Root ist jetzt ein Sudo erforderlich

Die einfachste (und sicherste) Lösung ist das Erstellen eines neuen Benutzers und das Gewähren der erforderlichen Berechtigungen.

1. Mit MySQL verbinden

Sudo mysql --user=root mysql

2. Erstelle einen Benutzer für phpMyAdmin

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Referenz - https://askubuntu.com/questions/763336/cannot-enter-phpmyadmin-as-root-mysql-5-7

19
Sachin Vairagi

Falls Sie mysql oder percona unbeaufsichtigt installieren möchten (wie in meinem Fall ansible), können Sie folgendes Skript verwenden:

# first part opens mysql log
# second part greps lines with temporary password
# third part picks last line (most recent one)
# last part removes all the line except the password
# the result goes into password variable

password=$(cat /var/log/mysqld.log | grep "A temporary password is generated for" | tail -1 | sed -n 's/.*[email protected]: //p')

# setting new password, you can use $1 and run this script as a file and pass the argument through the script

newPassword="[email protected]"

# resetting temporary password

mysql -uroot -p$password -Bse "ALTER USER 'root'@'localhost' IDENTIFIED BY '$newPassword';"
7
hpaknia

Ich habe gerade Linux Mint 19 (basierend auf Ubuntu 18.04) auf meinem Computer installiert. Ich habe MySQL 5.7 vom Repo aus installiert ( Sudo apt install mysql-server) und überraschenderweise hat das Setup während der Installation nicht zur Eingabe von root password aufgefordert. Infolgedessen konnte ich mich nicht bei MySQL anmelden. Ich habe hier und da gegoogelt und verschiedene Antworten aus dem Netz ausprobiert, einschließlich der oben akzeptierten Antwort. Ich habe deinstalliert (alle dpkgs mit mysql im Namen gelöscht) und erneut aus den Standard-Linux-Mint-Repositorys installiert. KEINE funktioniert.

Nach stundenlangen unproduktiven Arbeiten entschied ich mich, MySQL von der offiziellen Seite neu zu installieren. Ich habe die MySQL-Download-Seite ( https://dev.mysql.com/downloads/repo/apt ) für ein passendes Repo geöffnet und auf die Schaltfläche Download bei geklickt unten rechts.

Führen Sie es als nächstes mit dpkg aus:

Sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb

Wählen Sie beim Installationssetup die MySQL-Version aus, die Sie installieren möchten. Die Standardoption ist 8.0, aber ich habe sie in 5.7 geändert. Klicken Sie zum Beenden auf OK. Danach haben Sie ein neues MySQL-Repo in Ihren Software-Quellen.

Aktualisiere dein Repo:

Sudo apt update

Zum Schluss installieren Sie MySQL:

Sudo apt install mysql-server

Und jetzt wurde ich aufgefordert, root Passwort einzugeben! Hoffe, es hilft anderen mit der gleichen Erfahrung.

1

Mysql generiert ein temporäres Standardkennwort, wenn es installiert ist. Wenn Sie Mysql verwenden möchten, müssen Sie dieses Kennwort zunächst aus der Protokolldatei abrufen, die in der Datei /var/log/mysqld.log enthalten ist. So folgen Sie dem folgenden Prozess -

grep 'Temporäres Passwort' /var/log/mysqld.log

mysql_secure_installation - Dies ist erforderlich, um das Passwort für mysql zu ändern und um bestimmte andere Änderungen vorzunehmen, z. B. das Entfernen temporärer Datenbanken, das Zulassen oder Sperren des Remotezugriffs auf den Root-Benutzer, das Löschen anonymer Benutzer usw.

1
Vipul Sharma

Nach vielen Versuchen kann ich das Standardkennwort mit den folgenden Befehlen (Ubuntu und Derivate) zurücksetzen:

    Sudo -i
    mkdir -p /var/run/mysqld
    chown mysql:mysql /var/run/mysqld
    /etc/init.d/mysql stop
    mysqld_safe --skip-grant-tables &
    mysql -uroot
    use mysql;
    update user set authentication_string=password('YOURPASSWORD') where user='root';
    update user set plugin="mysql_native_password" where User='root';  
    flush privileges;
    quit;
    Sudo /etc/init.d/mysql stop
    Sudo /etc/init.d/mysql start

Manchmal auch nach dem Eintippen im Terminal

    mkdir -p /var/run/mysqld
    chown mysql:mysql /var/run/mysqld
    /etc/init.d/mysql stop
    mysqld_safe --skip-grant-tables &

Ich habe den Fehler bekommen, dass der mysqld nicht existiert. Beenden Sie also und geben Sie die gleichen Befehle erneut ein.

Und der letzte Befehl

        Sudo /etc/init.d/mysql start

Funktioniert manchmal nicht. Erst nach dem Neustart des Computers.

1
Leonardo

Es sieht so aus, als ob die Dinge so angelegt wären, dass Entwickler den Root-Benutzer nicht sehen, eine bessere Lösung wäre:

Sudo mysql -u root

Erstellen Sie dann einen normalen Benutzer, legen Sie ein Kennwort fest und verwenden Sie diesen Benutzer zum Arbeiten.

create user 'user'@'localhost' identified by 'user1234';
grant all on your_database.* to 'user'@'localhost';
select Host, user from mysql.user;

Dann versuchen Sie, auf Folgendes zuzugreifen:

mysql -u user -p

Boom!

1
Pablo Pazos

Ich hatte das gleiche Problem und das einzige, was ich tun konnte, um es zum Laufen zu bringen, war, diesen Weg zu gehen:

drop user [email protected]; flush privileges; create user [email protected] identified by 'admins_password'</ code>

Dies ermöglichte mir meine neu zu erstellen username und geben Sie ein passwort für den Benutzernamen

0
Donald L Wilson

In meinem Fall wurde das Datenverzeichnis automatisch mit der Option --initialize-insecure Initialisiert. Also enthält /var/log/mysql/error.log Kein temporäres Passwort, sondern:

[Warnung] root @ localhost wird mit einem leeren Passwort erstellt! Bitte erwägen Sie, die Option --initialize-insecure auszuschalten.

Was funktionierte war:

Shell> mysql -u root --skip-password
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Details: MySQL 5.7 Referenzhandbuch> 2.10.4 Sichern des anfänglichen MySQL-Kontos

0
Ra.

Keine dieser Antworten funktionierte für mich unter Ubuntu Server 18.04.1 und MySQL 5.7.23. Ich habe eine Menge Zeit damit verbracht, das Passwort und das Auth-Plugin manuell festzulegen, das Passwort in Protokollen zu finden (es ist nicht da) usw.

Die Lösung ist eigentlich super einfach:

Sudo mysql_secure_installation

Es ist wirklich wichtig, dies mit Sudo zu tun. Wenn Sie es ohne Erhöhung versuchen, werden Sie nach dem Root-Passwort gefragt, das Sie offensichtlich nicht haben.

0
bendodge