web-dev-qa-db-fra.com

Ubuntu 18.04 LTS après la nouvelle installation de MySQL / PHPMyadmin; pas de mot de passe root; impossible de se connecter avec PHPmyadmin

Après une nouvelle installation d'Ubuntu 18.04 LTS Bionic Beaver et la configuration d'une pile LAMP ainsi que l'installation de PHPMyadmin, je ne parviens pas à me connecter à PHPMyadmin car le mot de passe que j'ai fourni lors de la sécurisation de mysql avec mysql_secure_installation n'est pas correct. Je cherche des solutions sur Internet, mais toutes les solutions proposées n'ont aucun résultat positif dans mon cas.

Une solution de travail sera appréciée.

3
Bridge

J'ai eu le même problème. Apparemment, MySQL a été configuré par défaut pour utiliser une authentification basée sur le socket, qui utilise le nom d'utilisateur système et non un mot de passe. Pour résoudre le problème, j'ai utilisé les commandes suivantes:

Accédez à MySQL en tant qu'utilisateur root:

Sudo mysql   # or Sudo mysql -u root

Définissez le mot de passe de l'utilisateur root MySQL:

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

Remplacez 'test' ci-dessus par le mot de passe que vous souhaitez utiliser

8
heyjoe

La solution consiste à basculer la méthode d'authentification de MySQL d'une authentification de socket (c'est-à-dire auth_socket) à une authentification par mot de passe (c'est-à-dire le plugin mysql_native_password).

MySQL 5.7 et les versions ultérieures utilisent l'authentification de socket par défaut. Cela signifie que vous pourriez démarrer MySQL par Sudo mysql dans le terminal sans mot de passe. Même si vous créez un nouveau mot de passe root à l'aide de mysql_secure_installation, vous ne pourrez pas accéder à des logiciels tiers tels que phpmyadmin, qui utilise l'authentification par mot de passe. Voici la solution:

Sudo apt install mysql-server
Sudo mysql_secure_installation

Après avoir saisi mysql_secure_installation, créez un mot de passe pour root et cliquez sur Oui pour le reste des questions. [Vous pouvez remarquer que MySQL démarre toujours sans mot de passe car la méthode d'authentification par défaut n'a pas été modifiée jusqu'à présent! ]

Maintenant, entrez MySQL

Sudo mysql
SELECT user,authentication_string,plugin,Host FROM mysql.user;

Vous pouvez maintenant voir dans la sortie suivante que cette racine a le plugin asauth_socket au lieu de mysql_native_password

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | Host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *832A85D6EC83FA4A19ACFD461F672B95E4540611 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

Nous devons maintenant remplacer le plug-in par mysql_native_password. Remplacez le 'mot de passe' dans la commande suivante par un mot de passe fort

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;

Maintenant, vous pouvez vérifier les méthodes d'authentification pour chaque utilisateur, en utilisant la même commande ci-dessus

SELECT user,authentication_string,plugin,Host FROM mysql.user;

Sortie:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | Host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *C035F91799F4415B005D146ECEB5ADD4D991031F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *832A85D6EC83FA4A19ACFD461F672B95E4540611 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

Si votre sortie est comme ci-dessus, avec le plugin pour root comme mysql_native_password, vous êtes prêt à partir :) Maintenant, vous pouvez simplement accéder à phpmyadmin avec la racine et son mot de passe. J'espère que cela t'aides.

Ce lien m'a aidé à mieux comprendre ce concept

1
Swapnil Sourabh

Je devais me connecter avec

mysql -u root -p
0
Cancelor