Je reçois une erreur:
"Connexion perdue au serveur MySQL lors de la 'lecture du paquet de communication initial, erreur système: 0"
pendant que je vais connecter mon db.
Si j'utilise localhost, tout fonctionne correctement. Mais lorsque j'utilise mon adresse IP en direct comme ci-dessous, une erreur s'affiche:
mysql_connect("202.131.xxx.106:xxxx", "xxxx", "xxxxx") or die(mysql_error());
Ouvrez le fichier de configuration mysql nommé my.cnf et essayez de trouver "bind-address", remplacez ici le paramètre (127.0.0.1 OR localhost) par votre adresse IP de serveur en direct (l'adresse IP que vous utilisez dans la fonction mysql_connect)
Cela résoudra définitivement le problème.
Merci
la source
127.0.0.1
cas échéant, de sorte qu'un accès direct depuis d'autres hôtes n'est pas possible. Cela empêche les attaques par force brute à distance et n'expose pas d'éventuels problèmes de sécurité sur le réseau. Si votre application se trouve sur la même machine (ce qui est une configuration d'hébergement très courante), utilisez127.0.0.1
resp.localhost
en tant qu'hôte mysql et cela fonctionnera de la même manière que la liaison du service à votre interface externe et son utilisation comme hôte mysql. Si votre application est située ailleurs, utilisez un réseau interne si possible.1) Autorisez la connexion à distance à MySQL. Modifier le fichier:
Ligne de commentaire:
Redémarrez MySQL:
2) Créez un utilisateur pour la connexion à distance.
3) Dans mon cas, je dois me connecter à distance de Windows à la machine VirtualBox avec Ubuntu. Je dois donc autoriser le port 3306 dans iptables:
la source
FLUSH PRIVILEGES
après avoir créé un nouvel utilisateur.Eu ce problème lors de la configuration d'un nouveau serveur esclave. Il a été trouvé que l'adresse IP du serveur esclave était absente du serveur maître
/etc/hosts.allow
fichier du . Ajout de l'adresse IP et cela m'a permis de me connecter au serveur maître.Notez que j'utilise
hosts.allow
ethosts.deny
pour contrôler l'accès.la source
allow
quanddeny
aALL: ALL
...J'ai eu ce problème et cela a finalement été que l'administrateur système précédent avait changé le port sur lequel MySQL fonctionnait. MySQL Workbench essayait de se connecter au 3306 par défaut, mais le serveur fonctionnait sur 20300.
la source
Le problème dans mon cas était que MySQL était lié uniquement au lo sous Linux. afin de résoudre le problème, j'ai édité le my.cnf (trouvé dans /etc/mysql/my.cnf) en supprimant la ligne bind-address = 127.0.0.1
cela permet à mysql de se lier à n'importe quelle interface réseau
la source
Cette erreur s'est produite lors de la tentative de connexion à Google Cloud SQL à l'aide de MySQL Workbench 6.3.
Après quelques recherches, j'ai constaté que mon adresse IP avait été modifiée par le fournisseur d'accès Internet et qu'il n'était pas autorisé dans le Cloud SQL.
Je l'ai autorisé et suis retourné au travail.
la source
J'ai rencontré exactement la même erreur lors de la connexion à partir de MySQL Workbench. Voici comment je l'ai résolu. Mon fichier de configuration /etc/my.cnf avait la valeur d'adresse de liaison définie sur l'adresse IP du serveur. Cela devait être fait pour configurer la réplication. Quoi qu'il en soit, je l'ai résolu en faisant deux choses:
par exemple
la source
Le problème pour moi était que les requêtes DNS étaient bloquées par le FW dans le sous-réseau. La solution était de désactiver les recherches DNS dans MySQL.
la source
Je viens de configurer mysql sur une boîte Windows. J'ai eu l'erreur de l'OP en essayant de me connecter avec le client Navicat MySql sur la même boîte. J'ai dû spécifier 127.0.0.1 comme hôte, et cela l'a obtenu.
localhost, ou l'adresse IP réelle du serveur ne fonctionnait pas.
la source
L'erreur signifie qu'il n'a pas reçu de réponse du port sur lequel il s'attendait à trouver le serveur. Les causes vont du contact avec la mauvaise machine (pour l'une des nombreuses raisons) au serveur ne se trouvant pas sur le port attendu.
Vérifiez le port auquel votre serveur est lié dans /etc/mysql/my.cnf. Cela correspond-il à ce qui se trouve dans votre déclaration de connexion. S'ils correspondent, essayez de vous connecter avec mysql depuis le serveur lui-même et depuis la ligne de commande de la machine sur laquelle vous exécutez le client. Si cela fonctionne à un endroit et pas à un autre, vous pouvez avoir un problème de configuration de pare-feu / routeur.
la source
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61)
, pas leLost connection to MySQL server
message.dans mon cas, j'avais ALL: ALL dans hosts.deny. Changer ceci en ALL: PARANOID a résolu mon problème lors de la connexion via ssh
la source
Le problème était assez stupide pour moi.
J'avais l'habitude d'avoir le même problème sur la machine AWS EC2 Ubuntu (MariaDB est installée localement pour le moment), alors j'ai essayé de créer un tunnel SSH et j'ai eu le même problème. J'ai donc essayé de tunnel SSH sur le terminal:
Et ça m'a dit ceci:
J'ai changé l'utilisateur ssh de root en ubuntu, tout comme ma configuration ssh, et il s'est connecté très bien.
Vérifiez donc votre utilisateur de connexion SSH.
J'ai supervisé cela, donc c'est trop une demi-heure de mon temps, alors j'espère que cela vous sera utile.
la source
Pour moi, le fichier de configuration a été trouvé "/etc/mysql/mysql.conf.d/mysqld.cnf" commenter l'adresse de liaison a fait l'affaire.
Comme nous pouvons le voir ici: au lieu de sauter la mise en réseau, la valeur par défaut est maintenant d'écouter uniquement sur localhost qui est plus compatible et n'est pas moins sécurisé.
la source
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
et au lieu debind-address = 111.112.113.114
jebind-address = 127.0.0.1
. Les paramètres du tunnel SSH sont définis comme décrit sur hostpresto.com/community/tutorials/ ... Bon travail! Merci!Ran dans ce même problème, Bind Address d' avant en arrière en vain. La solution pour moi était de supprimer les privilèges .
la source
Pour moi , la mise
bind-address = 0.0.0.0
enmysql/my.cnf
fonctionné. Il écoute essentiellement toutes les adresses (mais toujours un port) alors.Et n'oubliez pas de redémarrer votre serveur:
systemctl restart mysql
la source
J'ai juste eu le même problème, mais dans mon cas, je l'ai résolu avec
la source
Une raison de plus ...
Je suis tombé sur un serveur Ubuntu où tout était personnalisé et ne pouvait pas se connecter à cause de la même erreur.
Ce paramètre était à l'intérieur
/etc/ssh/sshd_config
Après être devenu
J'ai pu me connecter à distance à ma base de données MySQL
la source
J'essaie de connecter mon conteneur db docker sur Ubuntu 18.04, même problème.
Vérifiez d'abord votre appareil en courant
nmcli dev
pour vérifier si l'appareildocker0
est connecté.S'il n'est pas connecté, essayez de redémarrer le service docker:
sudo service docker restart
la source
Dans mon cas, c'était le port de blocage du wifi de l'université 3306. J'ai pu me connecter en utilisant un hotspot mobile.
Passez à un point d'accès mobile ou à un autre réseau, et si cela fonctionne là-bas, vous savez que le réseau d'origine bloque le port 3306. Si vous obtenez la même erreur sur plus d'un réseau, vous savez que c'est spécifique à votre machine.
la source
Firewalld
bloque l'adresse IP. donc pour donner accès, utilisez ces commandes:firewall-cmd --permanent --zone = confiance --add-source = VOTRE_IP / 32
firewall-cmd --permanent --zone = confiance --add-port = 3306 / tcp
pare-feu-cmd --reload
la source
Lors de la connexion à distance à Mysql, j'ai eu l'erreur. J'ai eu cet avertissement dans
/var/log/mysqld.log
:Je viens d'ajouter cette ligne au
/etc/hosts
fichier:Problème résolu! Ne pas utiliser a
skip-name-resolve
provoqué des erreurs dans mon application locale lors de la connexion à MySQL.la source
J'ai eu un problème identique. Pour y remédier, je viens de changer d'hôte de localhost: 3306 à juste localhost. Ainsi, une erreur peut survenir lorsque vous spécifiez un port incorrect pour la connexion. Il vaut mieux le laisser par défaut.
la source
-P 3306
L'autorisation de lecture-écriture du répertoire de base de données est également un problème que j'ai trouvé. Assurez-vous simplement que votre application est capable de rw fichiers sur l'emplacement de base de données. Essayez chmod 777 pour le tester.
la source
J'ai fait face au même problème. J'ai vérifié et essayé de définir AllowTcpForwarding Oui, mais il manquait dans mon sshd_config donc aucune aide.Je n'ai pas changé sshd_config ou my.cnf. Assurez-vous que le nom d'hôte ssh n'est PAS le même que le nom d'hôte mysql (utilisez localhost).
Dans Workbench, choisissez + pour ajouter une nouvelle connexion et définissez les paramètres suivants:
Tester la connexion. Cela devrait réussir, puis appuyez sur OK.Viola!
la source
Si l'adresse de liaison n'est pas présente dans votre fichier de configuration et que mysql est hébergé sur l'instance AWS, veuillez vérifier votre groupe de sécurité. Dans des conditions idéales, les règles entrantes doivent accepter toutes les connexions du port 3306 et la règle sortante doit répondre à toutes les adresses IP valides.
la source
J'ai fait ci-dessous 3 étapes puis je travaille pour moi.
bind-address = "YOUR MACHINE IP"
dans lemy.cnf
fichier à /etc/my.cnfRedémarrez le service par commande:
service httpd restart
GRANT ALL PRIVILEGES ON yourDB.* TO 'username'@'YOUR_APPLICATION_IP' IDENTIFIED BY 'YPUR_PASSWORD' WITH GRANT OPTION;
la source
J'ai eu une erreur similaire (connexion à MYSQL sur aws via MYSql Workbench). J'avais l'habitude de me connecter bien avant et tout d'un coup cela a cessé de fonctionner et ne fonctionnait plus). Ma connexion était via SSH protégé par keyfile.
Il s'avère que je chronométrais. J'ai donc augmenté le délai d'expiration de la connexion SQL à 30 secondes (par défaut 10) et j'étais prêt à recommencer. choses à essayer (si vous êtes dans une configuration similaire)
mysql -u [username] -p [database]
? Cela vérifiera les problèmes de droits des utilisateurs, etc.la source
Un espace disque limité peut provoquer cette erreur.
Vérifiez votre espace disque
Essayez d'augmenter l'espace s'il y a 100% de disques utilisés.
Dans mon cas: j'ai la boîte Vagrant (8.0.1) (Ubuntu 16.04) La capacité de mon disque mysql était de 10 Go, je l'ai augmentée à 20 Go
Puis redémarrez mysql
la source
Si vous rencontrez cette erreur en vous connectant à distance, accédez à l'option mysql à distance dans cpanel, puis ajoutez% dans Host (% wildcard est autorisé).
la source