web-dev-qa-db-fra.com

ERREUR 1045 (28000): Accès refusé pour l'utilisateur 'root' @ 'localhost' (avec mot de passe: YES)

Je sais que certains utilisateurs peuvent dire qu'il s'agit d'une duplication, mais sérieusement, j'ai passé au peigne fin les réponses et celles sur Internet plus d'une demi-journée et je suis tellement frustré que je vais exploser.

Maintenant que cette explication thérapeutique est terminée, j’ai installé MySql Server et MariaDb 10 à partir des référentiels Ubuntu sur Ubuntu 12.04 LTS et saisi le mot de passe root lorsqu’il est en cours d’installation aussi doucement qu'un couteau dans le beurre.

Maintenant, la véritable frustration commence dans l’un des deux scénarios suivants:

  1. Lorsque je saisis la commande Sudo/usr/bin/mysql_secure_installation, la commande nd me demande de saisir le mot de passe root.

ou

2.Quand j'entre la commande mysql -u root -p et que le mot de passe est demandé.

S'il vous plaît, j’ai vraiment besoin d’aide à ce sujet - j’ai perdu le compte du nombre de fois où j’ai eu à désinstaller et à réinstaller MySQL ou MariaDb parce que cette douleur dans le cou était une erreur.

3
chetwynd2014

Je pense que j’ai peut-être compris le problème - il s’agit d’un long mot de passe.Je pense que cela devrait être signalé comme un bogue aux développeurs MySQL et MariaDB, car lors de l’installation, vous pouvez créer un mot de passe de plus de 100 caractères. Connectez-vous à MySQL ou MariaDB quand il est en production, vous obtenez l'erreur ci-dessus.

Je suis donc ravi d'avoir compris cela après tant de souffrances - étonnant que cela n'ait pas été identifié comme un bug compte tenu du nombre d'années de production de MySQL.

Donc, une solution consiste essentiellement à suivre les étapes suivantes pour résoudre le problème ci-dessus:

  1. Commencez avec un mot de passe vide sur un serveur de non-production et si cela fonctionne

  2. Si vous réussissez à l'étape 1, sécurisez votre installation mysql en tapant la commande suivante: Sudo/usr/bin/mysql_secure_installation et essayez d'entrer un mot de passe plus complexe - combinaison de lettres minuscules, de chiffres et de symboles et les lettres majuscules d'au moins 8 caractères devraient convenir.

  3. Je recommande de commencer avec 8 et de monter vers le haut jusqu'à atteindre un plafond avec le nombre de caractères que vous pouvez entrer.

Ce qui précède devrait être un pas dans la bonne direction pour sécuriser votre serveur MySQL.

4
chetwynd2014

Vérifiez le fichier: /etc/mysql/mariadb.conf.d/mysqld.cnf

vérifier si cette ligne existe:

plugin-load-add = auth_socket.so

puis allez à MariaDB:

Sudo mysql -u root

et faire ces modifications:

MariaDB [(none)]>use mysql;
MariaDB [(none)]>update user set plugin=' ' where User='root';
MariaDB [(none)]>flush privileges;
MariaDB [(none)]>exit

Je n'avais pas accès à mysqlworkbench, mais après avoir appliqué cette solution, tout s'est bien passé ...

8
David Leonardo

Essayez cette commande dans le terminal:

mysqladmin -u root -pcurrentpassword password 'newpassword'

Ensuite, tapez:

mysql -u root -pnewpassword
0
Rajesh N

La meilleure réponse est ici

Cela explique ce qui se passe. Cela explique pourquoi vous ne devriez pas simplement désactiver le plugin. Il explique comment le contourner (connectez-vous à l’aide de Sudo, créez un nouveau compte superutilisateur qui n’est pas un compte root).

Notez que this la solution par david-leonardo ne survit pas au redémarrage.

0
datakid