sql >> Database >  >> RDS >> Mysql

MySQL-verbinding via SSH-tunnel

Er zijn hier drie problemen.

1 - Vergeet de SSH-tunnel voor nu

U kunt MySQL niet aan meer dan één specifiek IP-adres binden. Het eerste bind-address clausule wordt overschreven (daarom genegeerd) door de tweede. Je server luistert alleen naar 99.99.99.99 .

De reden waarom u verbinding kunt maken met -h localhost maar niet met -h 127.0.0.1 is dat je in de eerste vorm niet echt verbinding maakt via TCP/IP, maar via een lokale socket.

Kijk in uw my.cnf voor een socket clausule.

Verwijder één overbodig bind-address clausule. Misschien wilt u bind-address=0.0.0.0 . gebruiken , die MySQL-daemon instrueert om naar alles te luisteren netwerkinterfaces.

2 - Laten we uw SSH-tunnel instellen

De reden voor je fout ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 is mij niet duidelijk. Ik vermoed SSH-tunnel wordt eigenlijk alleen tot stand gebracht wanneer het een verbindingsverzoek ontvangt (in uw geval, wanneer u de mysql uitvoert cliënt). Aangezien uw server niet naar 127.0.0.1 luistert (zie vorige paragraaf), kan de SSH-tunnel niet tot stand worden gebracht, mislukt de verbinding en interpreteert uw client dit als een netwerkstoring.

3 - Waarom mysql -v -h localhost -P 9989 -u user userdb -p mislukt

Post de output van

[edit:zojuist toegevoegd ...OR host LIKE 'localhost' hieronder, omdat dit relevant kan zijn voor het oplossen van problemen]

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

(vervang 'user' , na de LIKE clausule, met de daadwerkelijke gebruikersnaam indien nodig)

MySQL-toegangscontrole controleert zowel de gebruikersnaam als het wachtwoord (user ) en de oorsprong van de verbinding (host ) om een ​​gebruiker te identificeren. U heeft waarschijnlijk geen gebruiker 'user'@'localhost' . aangemaakt .

N.B.:mysql.com is op dit moment niet bereikbaar vanaf mijn locatie, dus ik kan niet linken naar de relevante man-pagina's.



  1. Database bijwerken met meerdere SQL-instructies

  2. oracle converteer unix tijdperk tot nu toe

  3. Installeer meerdere MySQL-instanties op een Linux-server -gebruik een apart MySQL-configuratiebestand

  4. Inner while-lus werkt niet