Mysql
 sql >> Base de données >  >> RDS >> Mysql

Connexion MySQL via un tunnel SSH

Il y a trois problèmes ici.

1 - Oubliez le tunnel SSH pour l'instant

Vous ne pouvez pas lier MySQL à plus d'une adresse IP spécifique. La première bind-address clause est remplacée (donc ignorée) par la seconde. Votre serveur n'écoute que 99.99.99.99 .

La raison pour laquelle vous pouvez vous connecter avec -h localhost mais pas avec -h 127.0.0.1 est que dans la première forme, vous ne vous connectez pas réellement via TCP/IP, mais via un socket local.

Regardez dans votre my.cnf pour un socket clause.

Supprimer une bind-address redondante clause. Vous pouvez utiliser bind-address=0.0.0.0 , qui demande au démon MySQL d'écouter tous interfaces réseau.

2 - Configurons votre tunnel SSH

La raison de votre erreur ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 n'est pas évident pour moi. Je soupçons Le tunnel SSH n'est en fait établi que lorsqu'il reçoit une demande de connexion (dans votre cas, lorsque vous exécutez le mysql client). Comme votre serveur n'écoute pas 127.0.0.1 (voir paragraphe précédent), le tunnel SSH ne peut pas être établi, la connexion échoue et votre client interprète cela comme une panne réseau.

3 - Pourquoi mysql -v -h localhost -P 9989 -u user userdb -p échoue

Veuillez publier le résultat de

[edit :vient d'ajouter ...OR host LIKE 'localhost' ci-dessous, car cela peut être utile à des fins de dépannage]

mysql > SELECT user, host FROM mysql.user WHERE user LIKE 'user' OR host LIKE 'localhost';

(remplace 'user' , après le LIKE clause, avec le nom d'utilisateur réel si nécessaire)

Le contrôle d'accès MySQL vérifie à la fois le nom d'utilisateur et le mot de passe (user ) et l'origine de la connexion (host ) pour identifier un utilisateur. Vous n'avez probablement pas créé d'utilisateur 'user'@'localhost' .

N.B. :mysql.com étant actuellement inaccessible depuis ma position, je ne peux pas créer de lien vers les pages de manuel correspondantes.