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.