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
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.
-
grep 'temporary password' /var/log/mysqld.log
- 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
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!
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';"
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.
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
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
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.
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!