8

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).

ZygD
  • 337
  • 1
  • 3
  • 11
Phuong Nguyen
  • 703
  • 1
  • 12
  • 27

2 Answers2

12

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 command

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

Alex
  • 6,603
  • 1
  • 24
  • 32
4

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';

RolandoMySQLDBA
  • 16,544
  • 3
  • 48
  • 84