I'm trying to use mysql
(command line utility) to connect to MySQL server through SSH tunnel.
The problem is this MySQL client won't use my specified port.
For example, I ran this:
$ mysql -uroot --port=1234
And it then just connected to port 3306.
Why does it do that?
How can I force this client to connect to port 1234 (then it should show me that port 1234 is not connectable).
If you are running the mysql client on the same host that the server is running, it is probably making a socket connection, and not using the port at all. Try adding
--protocol=TCP
to your commandmysql -uroot --protocol=TCP --port=1234
If you use TCP/IP you should specify the host IP. If the host is localhost, you must use 127.0.0.1 instead.
In other words
mysql -uroot -h127.0.0.1 -P1234 -p (if the root has a password)
mysql -uroot -h127.0.0.1 -P1234 (if the root does not has a password)
Once logged in, run this query to make sure:
SHOW VARIABLES LIKE 'port';