Ci sono tre problemi qui.
1 - Dimentica per ora il tunnel SSH
Non puoi associare MySQL a più di un IP specifico. Il primo bind-address
clausola viene sovrascritta (quindi ignorata) dalla seconda. Il tuo server ascolta solo 99.99.99.99
.
Il motivo per cui puoi connetterti con -h localhost
ma non con -h 127.0.0.1
è che nella prima forma, non ti connetti effettivamente tramite TCP/IP, ma tramite un socket locale.
Cerca nel tuo my.cnf
per un socket
clausola.
Rimuovi un bind-address
ridondante clausola. Potresti voler utilizzare bind-address=0.0.0.0
, che indica al demone MySQL di ascoltare tutti interfacce di rete.
2 - configuriamo il tuo tunnel SSH
Il motivo dell'errore ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
non è ovvio per me. sospetto Il tunnel SSH viene effettivamente stabilito solo quando riceve una richiesta di connessione (nel tuo caso, quando esegui mysql
cliente). Poiché il tuo server non ascolta 127.0.0.1 (vedi paragrafo precedente), non è possibile stabilire il tunnel SSH, la connessione non riesce e il tuo client lo interpreta come un errore di rete.
3 - Perché mysql -v -h localhost -P 9989 -u user userdb -p
fallisce
Si prega di inviare l'output di
[modifica:appena aggiunto ...OR host LIKE 'localhost'
di seguito, poiché potrebbe essere rilevante ai fini della risoluzione dei problemi]
mysql > SELECT user, host FROM mysql.user WHERE user LIKE 'user' OR host LIKE 'localhost';
(sostituisci 'user'
, dopo il LIKE
clausola, con il nome utente effettivo se necessario)
Il controllo di accesso MySQL controlla sia il nome utente che la password (user
) e l'origine della connessione (host
) per identificare un utente. Probabilmente non hai creato un utente 'user'@'localhost'
.
NB:mysql.com non essendo raggiungibile dalla mia posizione in questo momento, non posso collegarmi alle pagine di manuale pertinenti.