Qu'est-ce que le pasword racine par défaut pour MySQL 5.7

ne peut pas se connecter à la base de données MySQL après une nouvelle installation avec root ID et vide / pas de mot de passe comme les autres versions MySQL plus anciennes font

30
demandé sur Ryan 2015-11-30 06:57:56

8 réponses

après avoir installé MySQL-community-server 5.7 à partir de fresh sous linux, vous devez trouver le mot de passe temporaire à partir de /var/log/mysqld.journal de connexion en tant que root.

  1. grep 'temporary password' /var/log/mysqld.log
  2. Exécuter mysql_secure_installation pour changer de nouveau mot de passe

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

71
répondu Ryan 2015-11-30 03:57:56

il y a tellement de réponses là-bas disant de réinstaller mysql ou d'utiliser un peu de combo de

mysqld_safe --skip-grant-tables

et / ou

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

et / ou autre chose ...

... Rien de tout cela ne fonctionnait pour moi


voici ce qui a fonctionné pour moi, sur Ubuntu 18.04, du haut

avec mention spéciale à cette réponse pour creuser moi de la frustration ...

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

noter les lignes qui se lisent:

user     = debian-sys-maint
password = blahblahblah

puis:

$ 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> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
mysql> FLUSH PRIVILEGES;
mysql> COMMIT;  // When you don't have auto-commit switched on in your CLI
mysql> EXIT

$ sudo service mysql restart
$ mysql -u root -p
Enter password: // Yay! 'new_password' now works!
23
répondu Stewart 2018-10-02 17:05:57

dans le cas où vous voulez installer mysql ou percona sans surveillance (comme dans mon cas ansible), vous pouvez utiliser le script suivant:

# 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/.*root@localhost: //p')

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

newPassword="wh@teverYouLikE"

# resetting temporary password

mysql -uroot -p$password -Bse "ALTER USER 'root'@'localhost' IDENTIFIED BY '$newPassword';"
5
répondu HPM 2017-06-16 03:33:13

je viens d'installer Linux Mint 19 (basé sur Ubuntu 18.04) sur ma machine. J'ai installé MySQL 5.7 à partir du repo ( sudo apt install mysql-server ) et étonnamment lors de l'installation, la configuration n'a pas incité à entrer le mot de passe root . En conséquence, je n'ai pas pu me connecter à MySQL. J'ai cherché sur Google ici et là et essayé diverses réponses que j'ai trouvées sur le net, y compris la réponse acceptée ci-dessus. J'ai désinstallé (en purgeant tous les dpkg avec mysql dans son nom) et réinstallé à nouveau à partir des dépôts Mint Linux par défaut. AUCUN travaux.

après des heures de travaux improductifs, j'ai décidé de réinstaller MySQL de la page officielle. J'ai ouvert la page de téléchargement MySQL ( ) https://dev.mysql.com/downloads/repo/apt ) pour apt repo et cliqué télécharger bouton en bas à droite.

ensuite, exécutez-le avec dpkg:

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

lors de l'installation, choisissez la version MySQL que vous souhaitez installer. L'option par défaut est 8.0 mais je l'ai changée en 5.7. Cliquez sur OK pour arrêter. Après cela, vous avez une nouvelle MySQL repo dans vos Sources logicielles.

mise à Jour de votre repo:

sudo apt update

enfin, installez MySQL:

sudo apt install mysql-server

et maintenant on m'a demandé de fournir le mot de passe root ! Espérons qu'il aide les autres avec ce même expérience.

0
répondu Firdaus Adiputra 2018-07-01 09:11:40

j'ai été rencontrant le même problème et la seule chose que je pouvais faire pour le faire fonctionner était d'aller dans cette voie:

drop user admin@localhost; flush privileges; create user admin@localhost identified by 'admins_password'

cela m'a permis de recréer mon nom d'utilisateur et d'entrer un mot de passe pour le nom d'utilisateur

0
répondu Donald L Wilson 2018-09-06 20:08:47

dans mon cas, le répertoire de données a été automatiquement initialisé avec l'option --initialize-insecure . Donc /var/log/mysql/error.log ne contient pas de mot de passe temporaire mais:

[Avertissement] root@localhost est créé avec un mot de passe vide ! Merci coupez la --initialiser insécurité option.

Ce qui a fonctionné a été:

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

Détails: MySQL 5.7 Manuel De Référence > 2.10.4 Sécurisation du compte MySQL Initial

0
répondu Ra. 2018-09-26 11:10:56

aucune de ces réponses n'a fonctionné pour moi sur Ubuntu Server 18.04.1 et MySQL 5.7.23. J'ai passé beaucoup de temps à essayer et à ne pas régler le mot de passe et le plugin auth manuellement, trouver le mot de passe dans les logs (il n'est pas là), etc.

la solution est en fait super facile:

sudo mysql_secure_installation

C'est vraiment important de faire ça avec sudo . Si vous essayez sans élévation, on vous demandera le mot de passe root, que vous n'avez évidemment pas.

0
répondu bendodge 2018-09-28 18:03:06

il semble que les choses ont été conçues pour éviter les développeurs de voir l'utilisateur root, une meilleure solution serait:

sudo mysql -u root

Puis créer un utilisateur normal, définir un mot de passe, puis utiliser cet utilisateur de travailler.

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

puis essayer d'accéder:

mysql -u user -p

Boom!

0
répondu Pablo Pazos 2018-10-06 00:54:36