Warum verwendet das MySQL-Client-Dienstprogramm nicht den von mir angegebenen Port?

8

Ich versuche, mysql(Befehlszeilenprogramm) zu verwenden, um über einen SSH-Tunnel eine Verbindung zum MySQL-Server herzustellen. Das Problem ist, dass dieser MySQL-Client meinen angegebenen Port nicht verwendet. Zum Beispiel habe ich Folgendes ausgeführt:

$ mysql -uroot --port=1234

Und es wurde dann einfach an Port 3306 angeschlossen.

Warum macht es das?

Wie kann ich diesen Client zwingen , eine Verbindung zu Port 1234 herzustellen (dann sollte es mir zeigen, dass Port 1234 nicht verbindbar ist).

Phuong Nguyen
quelle

Antworten:

10

Wenn Sie den MySQL-Client auf demselben Host ausführen, auf dem der Server ausgeführt wird, stellt er wahrscheinlich eine Socket-Verbindung her und verwendet den Port überhaupt nicht. Versuchen Sie --protocol=TCP, Ihrem Befehl etwas hinzuzufügen

mysql -uroot --protocol=TCP --port=1234

Alex
quelle
4

Wenn Sie TCP / IP verwenden, sollten Sie die Host-IP angeben. Wenn der Host localhost ist, müssen Sie stattdessen 127.0.0.1 verwenden.

Mit anderen Worten

mysql -uroot -h127.0.0.1 -P1234 -p (wenn der Root ein Passwort hat)

mysql -uroot -h127.0.0.1 -P1234 (wenn der Root kein Passwort hat)

Führen Sie nach dem Anmelden diese Abfrage aus, um Folgendes sicherzustellen:

VARIABLEN WIE 'Port' ANZEIGEN;

RolandoMySQLDBA
quelle