sql >> Base de Datos >  >> RDS >> Mysql

Conexión MySQL sobre túnel SSH

Hay tres problemas aquí.

1 - Olvídate del túnel SSH por ahora

No puede vincular MySQL a más de una IP específica. La primera bind-address la cláusula es anulada (por lo tanto, ignorada) por la segunda. Su servidor solo escucha 99.99.99.99 .

La razón por la que puedes conectarte con -h localhost pero no con -h 127.0.0.1 es que en la primera forma, en realidad no te conectas a través de TCP/IP, sino a través de un socket local.

Busque en su my.cnf para un socket cláusula.

Eliminar una bind-address redundante cláusula. Es posible que desee utilizar bind-address=0.0.0.0 , que le indica al demonio MySQL que escuche todos interfaces de red.

2 - Configuremos tu túnel SSH

El motivo de su error ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 no es obvio para mi. sospecho El túnel SSH en realidad se establece solo cuando recibe una solicitud de conexión (en su caso, cuando ejecuta mysql cliente). Dado que su servidor no escucha 127.0.0.1 (consulte el párrafo anterior), el túnel SSH no se puede establecer, la conexión falla y su cliente lo interpreta como una falla de red.

3 - ¿Por qué mysql -v -h localhost -P 9989 -u user userdb -p falla

Publique el resultado de

[editar:acaba de agregar ...OR host LIKE 'localhost' a continuación, ya que esto podría ser relevante para solucionar problemas]

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

(reemplace 'user' , después del LIKE cláusula, con el nombre de usuario real si es necesario)

El control de acceso de MySQL comprueba tanto el nombre de usuario como la contraseña (user ) y el origen de la conexión (host ) para identificar a un usuario. Probablemente no creaste un usuario 'user'@'localhost' .

N.B.:no se puede acceder a mysql.com desde mi ubicación en este momento, no puedo vincular a las páginas de manual relevantes.