Wat is het standaard root-wachtwoord voor MySQL 5.7

Kan niet inloggen op MySQL-database na nieuwe installatie met root-ID en leeg/geen wachtwoord zoals andere oudere MySQL-versies doen


Antwoord 1, autoriteit 100%

Er zijn zoveel antwoorden die zeggen dat je mysql opnieuw moet installeren of een combinatie van

. moet gebruiken

mysqld_safe --skip-grant-tables

en/of

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

en/of iets anders …

… Niets van alles werkte voor mij


Dit is wat voor mij werkte, op Ubuntu 18.04, van bovenaf

Met speciaal tegoed voor dit antwoordom me uit de frustratie hierover te halen …

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

Let op de regels die luiden:

user     = debian-sys-maint
password = blahblahblah

Dan:

$ 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

Ofwel:

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

Of:

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

Dan:

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!

Antwoord 2, autoriteit 71%

Nadat je MySQL-community-server 5.7 van vers op linux hebt geïnstalleerd, moet je het tijdelijke wachtwoord vinden in /var/log/mysqld.log om in te loggen als root.

  1. grep 'temporary password' /var/log/mysqld.log
  2. Voer mysql_secure_installationuit om het nieuwe wachtwoord te wijzigen

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


Antwoord 3, autoriteit 21%

MySQL 5.7 heeft het beveiligde model gewijzigd: nu vereist MySQL root login een sudo

De eenvoudigste (en veiligste) oplossing is om een ​​nieuwe gebruiker aan te maken en de vereiste rechten toe te kennen.

1. Verbinding maken met mysql

sudo mysql --user=root mysql

2. Maak een gebruiker aan voor phpMyAdmin

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

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


Antwoord 4, autoriteit 8%

MySQL-server 5.7 was al standaard geïnstalleerd op mijn nieuwe Linux Mint 19.

Maar wat is het MySQL root-wachtwoord? Het blijkt dat:

De standaardinstallatie gebruikt auth_socketvoor authenticatie, in plaats van wachtwoorden!

Het maakt inloggen zonder wachtwoord mogelijk, op voorwaarde dat men met dezelfde gebruikersnaam op het Linux-systeem is ingelogd. Om in te loggen als de MySQL root user, kan men sudo gebruiken:

sudo mysql --user=root

Maar hoe verander je dan het root-wachtwoord? Om te illustreren wat er aan de hand is, heb ik een nieuwe gebruiker “ik” gemaakt, met volledige rechten, met:

mysql> CREATE USER 'me'@'localhost' IDENTIFIED BY 'my_new_password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'me'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

“ik” vergelijken met “root”:

mysql> SELECT user, plugin, HEX(authentication_string)  FROM mysql.user WHERE user = 'me' or user = 'root';
+------+-----------------------+----------------------------------------------------------------------------+
| user | plugin                | HEX(authentication_string)                                                 |
+------+-----------------------+----------------------------------------------------------------------------+
| root | auth_socket           |                                                                            |
| me   | mysql_native_password | 2A393846353030304545453239394634323734333139354241344642413245373537313... |
+------+-----------------------+----------------------------------------------------------------------------+

Omdat het auth_socket gebruikt, kan het root-wachtwoord niet worden gewijzigd: de opdracht SET PASSWORDmislukt en mysql_secure_installationbereikt niets…

==> Om deze alternatieve authenticatiemodus te zappen en de MySQL root-gebruiker terug te sturen naar het gebruik van wachtwoorden:

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

Een goede uitleg.

Meer details uit de MySQL-handleiding.


Antwoord 5, autoriteit 5%

Als je mysql of percona onbeheerd wilt installeren (zoals in mijn geval ansible), kun je het volgende script gebruiken:

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

Antwoord 6, autoriteit 4%

MySQL 5.7 of nieuwer genereert een standaard tijdelijk wachtwoord na een nieuwe installatie.

Om eerst MySQL te gebruiken, moet u dat wachtwoord ophalen uit het logbestand dat aanwezig is op de /var/log/mysqld.log. Volg dus het volgende proces:

  1. grep 'temporary password' /var/log/mysqld.log

  2. mysql_secure_installation

Het tweede commando is nodig om het wachtwoord voor MySQL te wijzigen en ook om bepaalde andere wijzigingen aan te brengen, zoals het verwijderen van tijdelijke databases, het toestaan ​​of weigeren van toegang op afstand aan rootgebruikers, het verwijderen van anonieme gebruikers enz…

Other episodes