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.