133 votes

Impossible de se connecter au serveur de base de données (mysql workbench)

Pouvez-vous m'aider à résoudre ce problème ?

Lorsque j'essaie de cliquer sur "query database" dans le menu database de Mysql workbench, je reçois un message d'erreur :

Impossible de se connecter au serveur de base de données

Votre tentative de connexion a échoué pour l'utilisateur 'Root' entre votre hôte et le serveur à l'adresse suivante 127.0.0.1:3306:Impossible de se connecter au serveur mysql sur '127.0.0.1'(10061)

S'il vous plaît :

  1. Vérifier que mysql fonctionne sur le serveur 127.0.0.1
  2. Vérifiez que mysql fonctionne sur le port 3306 (note : 3306 est le port par défaut, mais il peut être modifié).
  3. Vérifiez que la racine a le droit de se connecter à 127.0.0.1 depuis votre adresse (les droits mysql définissent quels clients peuvent se connecter au serveur et à partir de quelles machines).
  4. Assurez-vous que vous fournissez un mot de passe si nécessaire et que vous utilisez le bon mot de passe pour 127.0.0.1 en vous connectant à partir de l'adresse de l'hôte à partir duquel vous vous connectez.

145voto

Ayan Points 1480

Le problème est probablement dû au fait que l'authentification par socket est activée par défaut pour l'utilisateur Root lorsqu'aucun mot de passe n'est défini, lors de la mise à jour vers Ubuntu 16.04.

La solution consiste à revenir à l'authentification native par mot de passe. Vous pouvez le faire en vous connectant à MySQL en utilisant l'authentification par socket en faisant :

sudo mysql -u root

Une fois connecté :

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

ce qui ramènera à l'authentification par mot de passe native (ancienne valeur par défaut).

Utilisez maintenant mot de passe comme mot de passe lorsque MySQL l'exige.

66voto

Colin Points 129

Essayez d'ouvrir services.msc dans la boîte de recherche du menu Démarrer et essayez de démarrer manuellement le service MySQL ou écrivez directement services.msc en Run boîte

40voto

aj_r Points 713

Il semble que les causes de cette erreur soient multiples.

Ma cause / solution

Dans mon cas, la cause était que mon serveur était configuré pour n'accepter que les connexions en provenance de localhost. J'ai résolu le problème en suivant cet article : Comment activer l'accès à distance au serveur de base de données MySQL ? . Mi my.cnf n'avait pas de skip-networking J'ai donc modifié la ligne

bind-address = 127.0.0.1

à

bind-address = 0.0.0.0

Cela permet des connexions à partir de n'importe quelle IP, et pas seulement 127.0.0.1.

Ensuite, j'ai créé un utilisateur MySql qui peut se connecter à partir de ma machine cliente en exécutant les commandes de terminal suivantes :

# mysql -u root -p
mysql> CREATE USER 'username'@'1.2.3.4' IDENTIFIED BY 'password';
    -> GRANT ALL PRIVILEGES ON *.* TO 'username'@'1.2.3.4' WITH GRANT OPTION;
    -> \q

donde 1.2.3.4 est l'IP du client à partir duquel vous essayez de vous connecter. Si vous avez vraiment des difficultés, vous pouvez utiliser '%' au lieu de '1.2.3.4' pour permettre à l'utilisateur de se connecter à partir de n'importe quelle IP.

Autres causes

Pour une liste assez complète, voir Causes des erreurs de refus d'accès .

22voto

Sergio Points 1769

Avez-vous essayé de déterminer s'il s'agit d'un problème avec Workbench ou d'un problème général de connexion ? Essayez ceci :

  1. Ouvrir un terminal
  2. Type mysql -u root -p -h 127.0.0.1 -P 3306
  3. Si vous parvenez à vous connecter, vous verrez apparaître une invite mysql après avoir saisi votre mot de passe (tapez quit et Entrée pour sortir).

Faites un rapport sur la façon dont cela a fonctionné.

20voto

almawhoob Points 163

J'ai eu un problème similaire sur Mac OS et j'ai pu le réparer de cette manière :

Dans le terminal, exécutez :

mysql -u root -p -h 127.0.0.1 -P 3306

Ensuite, on m'a demandé de saisir le mot de passe. J'ai simplement appuyé sur entrer car aucun mot de passe n'a été défini.

J'ai reçu le message suivant :

Bienvenue sur le moniteur MySQL. Les commandes se terminent par ; ou \g. Y est 181. Version du serveur : 8.0.11 Homebrew.

Si vous avez réussi à vous connecter à mysql>, exécutez la commande suivante :

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

Vous devriez obtenir un message comme celui-ci :

Requête OK, 0 ligne affectée (0.19 sec)

Maintenant, votre mot de passe est " mot de passe "et votre nom d'utilisateur est " Racine ".

Bon codage :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X