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

87

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

Quand j'essaye de cliquer sur "base de données de requête" sous le menu de base de données dans le workbench de Mysql. ça me donne une erreur:

Cannot Connect to Database Server

Your connection attempt failed for user 'root' from your host to server at 
127.0.0.1:3306:Can't connect to mysql server on '127.0.0.1'(10061)

Please:

 1. Check that mysql is running on server 127.0.0.1
 2. Check that mysql is running on port 3306 (note: 3306 is the default, but this can 
    be changed)
 3. Check the root has rights to connect to 127.0.0.1 from your address (mysql rights 
    define what clients can connect to the server and from which machines) 
 4. Make sure you are both providing a password if needed and using the correct 
    password for 127.0.0.1 connecting from the host address you're connecting from
user948950
la source
3
Cette réponse a fonctionné pour moi. stackoverflow.com/questions/16129399/…
mcaleaa
Dans mon cas, une aide au redémarrage simple - mais je vérifie d'abord la suggestion @sergio - stackoverflow.com/a/7875732/6705161 .
dannydedog

Réponses:

105

Le problème est probablement dû à l'activation de l'authentification par socket pour l'utilisateur root par défaut lorsqu'aucun mot de passe n'est défini, lors de la mise à niveau vers ubuntu 16.04.

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

sudo mysql -u root

Une fois connecté:

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

qui reviendra à l'authentification par mot de passe natif (ancien par défaut).

Maintenant, utilisez le mot de passe comme mot de passe chaque fois que MySQL l'exige.

Ayan
la source
3
Cela a fonctionné pour moi, je suis surpris, j'ai déjà configuré le mot de passe strict lors de l'installation du mysql et le même mot de passe strict utilisé avec une requête d'alter donnée. Je suis curieux de savoir pourquoi cela n'a pas fonctionné lors de la première tentative
Vipul Patil
Merci beaucoup! Ce comportement est-il uniquement créé pour le bénéfice de l'utilisateur root unix se connectant à mysql sans entrer le mot de passe?
Igor de Lorenzi
1
Excellente solution. Merci mec!
Valney Faria
56

Essayez d' ouvrir services.mscdans le menu de démarrage zone de recherche et essayez de démarrer manuellement le service MySQL ou écrire directement services.msc dans la Runboîte

Colin
la source
1
N'a pas travaillé pour moi. s'exécutant directement à partir de la ligne de commande ´C: \ Program Files \ MySQL \ MySQL Server 5.6 \ bin \ mysqld.exe --console´ (notez que le "d" entre "mysql" et ".exe" fonctionnait bien (lors de l'ouverture du ligne de commande "en tant qu'administrateur"). Je suppose donc que trouver un moyen de démarrer le service "en tant qu'administrateur" résoudrait ce problème.
Adrien Be
5
Où se trouve la zone de recherche du menu Démarrer?
Everyone_Else
Ma solution a été exécuté Mysql-Workbench avec sudo: sudo mysql-workbench . Je ne savais pas où trouver services.msc
Luigi Lopez
33

Il semble qu'il y ait de nombreuses causes à cette erreur.

Ma cause / solution

Dans mon cas, la cause était que mon serveur était configuré pour n'accepter que les connexions de localhost. Je l'ai corrigé en suivant cet article: Comment activer l'accès distant au serveur de base de données MySQL? . Mon my.cnffichier n'avait pas de skip-networkingligne, alors j'ai juste changé la ligne

bind-address = 127.0.0.1

à

bind-address = 0.0.0.0

Cela permet les connexions depuis n'importe quelle adresse IP, pas seulement 127.0.0.1.

Ensuite, j'ai créé un utilisateur MySql qui pourrait 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

1.2.3.4est l'adresse IP du client à partir duquel vous essayez de vous connecter. Si vous rencontrez vraiment des problèmes, vous pouvez utiliser '%'au lieu de '1.2.3.4'pour permettre à l'utilisateur de se connecter à partir de n'importe quelle adresse IP.

Autres causes

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

AJ Richardson
la source
AFAIK, la création de l'utilisateur est nécessaire car la racine de l'utilisateur ne doit être utilisée que pour le travail d'administrateur et devrait raisonnablement être limitée à localhost. quel utilisateur vous créez au-delà de cela dépend de vous!
user3791372
Le lien vers les causes des erreurs d'accès refusé est désormais rompu.
Matt Coubrough
20

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

  1. Ouvrez un terminal
  2. Type mysql -u root -p -h 127.0.0.1 -P 3306
  3. Si vous pouvez vous connecter avec succès, vous verrez une invite mysql après avoir tapé votre mot de passe (tapez quitet entrez là pour quitter).

Rapportez comment cela a fonctionné.

Sergio
la source
Salut, Il dit que "mysql n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes." Merci beaucoup.
user948950
1
Vous voudrez peut-être ajouter le répertoire mysql bin (le binrépertoire dans le répertoire principal MySQL) au chemin système . Ensuite, le programme client mysql sera disponible de n'importe où. Ou vous pouvez simplement exécuter cette commande après le cd-ing dans le répertoire bin MySQL. Les deux devraient fonctionner.
Sergio
2
Lorsque je me connecte à mysql avec cette commande $> mysql -u root -p -h 127.0.0.1 -P 3306 Entrez le mot de passe: ERREUR 1045 (28000): Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe: NON) [root @ localhost ~] # mysql -u root -p -h 127.0.0.1 -P 3306 Entrez le mot de passe: ERREUR 1045 (28000): Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe: OUI) [root @ localhost ~] # mysql -u admin -p -h 127.0.0.1 -P 3306 Entrez le mot de passe: ERREUR 1045 (28000): Accès refusé pour l'utilisateur 'admin' @ 'localhost' (en utilisant le mot de passe: OUI) [root @ localhost ~] #
Sumit Munot
15

J'ai eu un problème similaire sur Mac OS et j'ai pu le résoudre de cette façon:

Depuis 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. Je viens d'appuyer sur Entrée car aucun mot de passe n'a été configuré.

J'ai reçu un message comme suit:

Bienvenue sur le moniteur MySQL. Les commandes se terminent par; ou \ g. Votre identifiant de connexion MySQL 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 recevoir un message comme celui-ci:

Requête OK, 0 ligne affectée (0,19 s)

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

Bon codage :)

Almawhoob
la source
Cela ne fonctionnera probablement plus avec les installations plus récentes car les connexions anonymes sont désactivées.
en_lorithai
9

Exécutez la commande ALTER USER. Assurez-vous de remplacer le mot de passe par un mot de passe fort de votre choix.

  1. sudo mysql # Connectez-vous à mysql`

  2. Exécutez la commande ci-dessous

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

Vous pouvez maintenant y accéder en utilisant le nouveau mot de passe.

Réf: https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04

Athira Ramachandran
la source
7

J'ai dû démarrer Workbench en tant qu'administrateur. Apparemment, il n'avait pas les autorisations requises pour se connecter à mon processus de serveur de base de données localhost.

Cliquez avec le bouton droit sur le raccourci Workbench et sélectionnez Run as Administrator. Dans la fenêtre Propriétés du raccourci, vous pouvez cliquer sur "Avancé" et cocher la case à côté de "Exécuter en tant qu'administrateur" pour toujours exécuter le Workbench avec les privilèges d'administrateur.

Steven Ryssaert
la source
5

L'erreur se produit car le serveur mysql ne démarre pas sur votre ordinateur. Vous devez le démarrer manuellement. Suivez les étapes suivantes:

  1. Téléchargez et installez le serveur wamp en fonction de votre version bit (32 bits ou 64 bits) sur votre ordinateur ( http://wampserver-64bit.en.softonic.com/ ) ce lien vous permet de télécharger le serveur wamp pour 64 bits.

  2. Dès que vous l'installez, vous pouvez double-cliquer et l'exécuter .. (vous pouvez voir une icône dans la main droite de la barre des tâches.Il peut être masqué .Vous pouvez donc cliquer sur la flèche qui vous montre les applications de masquage en cours d'exécution). cliquez sur l'icône et accédez à Mysql

  3. Ensuite, allez dans Service et là vous pouvez trouver Démarrer / Reprendre les services, cliquez dessus.

  4. Et maintenant c'est fait.Ouvrez mysql workbench et voyez. Cela fonctionnera.

Sanjaya
la source
4

J'ai lutté avec ce problème pendant un certain temps et j'ai fait plusieurs réinstallations de MySQL avant de le découvrir.

Je sais que le serveur MySQL fonctionnait correctement car je pouvais accéder à toutes mes bases de données en utilisant la ligne de commande.

J'espère que cela fonctionne pour toi.

Dans MySQL Workbench (5.2.47 CE)

cliquez sur Mange Server Instances (coin inférieur droit)

cliquez sur Connexion

dans la zone Connexion , sélectionnez:

Instance locale ($ ServerName) - [email protected]: 3306 '<' Standard (TCP / IP)>

cliquez sur Modifier la sélection ...

sous Paramètres, le nom d'hôte remplace l' hôte local ou 127.0.0.1 par votre nom NetBIOS

cliquez sur Tester la connexion

Si cela fonctionne pour vous, tant mieux. Sinon, changez le nom d'hôte pour ce qu'il était.

KuBand12
la source
1
qu'est-ce qu'un nom NetBIOS?
UserYmY
2
CECI a fonctionné pour moi. Le nom NetBIOS est le nom de l'ordinateur, vous pouvez le lire à partir des propriétés du système, onglet «Nom de l'ordinateur», «nom complet de l'ordinateur».
NeonMan
3

Pour ceux qui ont ignoré que le message d'erreur initial qui s'affiche est le suivant:

Le nom org.freedesktop.secrets n'a été fourni par aucun fichier .service

Assurez-vous d'installer gnome-keyring en utilisant les éléments suivants

sudo apt install gnome-keyring
Bruno Kos
la source
2

Pour ma raison, j'ai essayé d'utiliser le dernier MySQL Workbench 8.x pour me connecter à MySQL Server 5.1 (tous deux fonctionnant sur Windows Server 2012).

Lorsque j'ai désinstallé MySQL Workbench 8.x et installé MySQL Workbench 6.3.10, il s'est connecté avec succès à la localhostbase de données

Alex
la source
1

Pour être à jour pour les versions supérieures et les visiteurs ultérieurs:

Actuellement, je travaille sur un win7 64bit ayant différents outils, y compris python 2.7.4 comme prérequis pour google android ...

Lorsque j'ai mis à niveau de WB 6.0.8-win32 vers les versions supérieures pour avoir des performances 64 bits, j'ai eu des problèmes, par exemple sur 6.3.5-winx64, j'ai eu un bogue dans la vue détaillée des tables (vue désordonnée) qui m'a amené à revenir à la version 6.2. 5-winx64.

En tant qu'utilisateur GUI, l'ingénierie simple avant / arrière et les éléments relatifs au serveur de base de données fonctionnaient bien, mais lorsque nous essayons, Database>Connect to Databasenous aurons Not connectedet aurons une erreur python si nous essayons d'exécuter une requête, mais le service du serveur DB est absolument exécuté et fonctionne bien et ce problème ne vient pas du serveur et provient de Workbench. Pour le résoudre, nous devons utiliserQuery>Reconnect to Server choisir explicitement la connexion DB, puis presque tout semble bon (cela peut être dû à mes multiples connexions DB et je n'ai pas trouvé de solution pour définir la connexion DB par défaut dans Workbench).

Comme une note: parce que j'utilise la dernière version de Xampp (même sous Linux de manière addictive :)), récemment Xampp utilise mariadb 10 au lieu de mysql 5.x fait que la version du fichier mysql est 10 peut causer des problèmes tels que l'ingénierie en avant des procédures qui peut être résolu via mysql_upgrade.exemais toujours lorsque nous essayons de vérifier une connexion à la base de données, wb informera de la mauvaise version, mais ce n'est pas critique et fonctionne bien.

Conclusion: Ainsi, parfois, des problèmes de connexion à la base de données dans Workbench peuvent être dus à lui-même et non au serveur (si vous n'avez pas d'autres problèmes relatifs à la connexion à la base de données).

Alix
la source
1

Dans mon cas, je viens d'installer MySQL Workbench mais après avoir désinstallé MySQL Workbench et installé le programme d'installation de MySQL, il en va de même pour les 32 et 64 bits, puis après cela fonctionne comme un charme. J'espère que cela pourrait être utile.

Shaik Elias
la source
0

J'ai également lutté avec ce problème pendant un certain temps.

Je suis tombé sur ce sujet intéressant du forum MySQL: http://forums.mysql.com/read.php?11,11388,11388#msg-11388

Je suis également tombé (évidemment) sur de bons SO Q / R.

Il semble que le message mentionné dans la question de "user948950" peut provenir d'un large éventail de raisons: fichier journal trop gros, valeurs incorrectes du fichier mysql.ini, espaces dans le chemin du fichier, problème de sécurité / acl, anciennes entrées dans le registre, et ainsi de suite.

Donc, après avoir essayé pendant 3h de résoudre ce problème ... j'ai abandonné et j'ai décidé de faire une bonne vieille réinstallation.

C'est là que ce post de (encore) ce fil MySQL est venu utile , je cite:

Gary Williams a écrit: Salut les gars,

J'ai eu exactement le même problème et c'est ainsi que je l'ai fait fonctionner pour moi, en commençant par une installation qui ne fonctionnait pas.

  1. Arrêtez le service Windows pour toute installation mysql existante.

  2. Désinstallez Mysql.

Comme pour la plupart des désinstallations, les anciens fichiers sont laissés pour compte. Si votre répertoire est C: \ mysql \ etc, supprimez les fichiers innob, etc, mais laissez les répertoires eux-mêmes ainsi que toutes les bases de données existantes dans 'data'. Si votre répertoire est C: \ Program Files \ etc, supprimez tous les répertoires mysql.

  1. Il vaut maintenant la peine d'exécuter regedit pour vous assurer que les anciennes entrées de registre sont également supprimées par la désinstallation. Sinon, supprimez-les.

  2. Vous pouvez cependant utiliser le nouveau programme d'installation .msi (fichiers essentiels uniquement) ...

  3. N'utilisez pas leur chemin d'installation par défaut! Un génie a tracé une voie avec des espaces! Choisissez l'installation personnalisée et sélectionnez un chemin sensible, c'est-à-dire C: \ mysql (note d'Adrien: C: \ mysqldata pour ... les données)

  4. Ne choisissez pas de modifier les paramètres de sécurité. Décochez la case appropriée et l'installation se terminera sans avoir à définir un mot de passe root.

Je pense que je me suis souvenu de tout.

Bonne chance

Gary

J'ai eu des problèmes en copiant / collant simplement les bases de données que j'avais dans mon répertoire "data" précédent dans le nouveau. Donc, le travail que j'ai trouvé était d'exporter chaque base de données (je sais ... beaucoup de plaisir) et de les réimporter une par une.

FYI: j'ai utilisé la commande suivante pour importer C:/<MySQLInstallDir>/My SQL Server x.x/bin/mysql -u root -p <dbName> < "<dirPathOfDump>\<dumpName>.sql", c'est-à-dire par exempleC:/mysql/MySQL Server 5.6/bin/mysql -u root -p mySupaCoolDb < "C:\mySupaCoolDbDump20130901.sql"

Adrien Be
la source
0

J'étais dans des situations similaires avant et la dernière fois que j'ai découvert qu'il s'agissait d'un problème de mise à jour Windows (pas sûr). Cette fois, j'ai ouvert MySQL workbench et n'ai trouvé aucune connexion à ma base de données locale. Je ne peux pas voir mes tables, mais hier j'ai pu me connecter à la base de données.

J'ai trouvé que ma cause est qu'après avoir laissé mon ordinateur en veille pendant un certain temps et le réveiller, le service mysql ne fonctionne pas. Ma solution: redémarrez le service nommé "mysql" et relancez le workbench. Le redémarrage du service prend un certain temps, mais cela fonctionne.

WesternGun
la source
0

Mon problème était que le serveur MySQL n'était pas réellement installé. J'avais exécuté le programme d'installation de MySQL, mais il n'a pas installé le serveur MySQL.

J'ai relancé le programme d'installation, cliquez sur "Ajouter", puis ajouté le serveur MySQL à la liste. Maintenant ça marche bien.

Pikamander2
la source
0

Le problème est que le serveur MYSQL n'est pas installé. Vous pouvez obtenir le programme d'installation à partir d' ici

Ensuite, regardez ce tutoriel d' installation de 6 minutes .

Si la création d'une nouvelle connexion dans MYSQL Workbench ne fonctionne pas, assurez-vous d'exécuter cette connexion en tant que root comme indiqué ci-dessous:

entrez la description de l'image ici

Si vous ne trouvez pas votre fichier .ini, vérifiez cette réponse.

Justice Bringer
la source