web-dev-qa-db-ja.com

mysqlクライアントユーティリティが指定したポートを使用しないのはなぜですか?

mysql(コマンドラインユーティリティ)を使用して、SSHトンネルを介してMySQLサーバーに接続しようとしています。問題は、このMySQLクライアントが指定されたポートを使用しないことです。たとえば、私はこれを実行しました:

$ mysql -uroot --port=1234

そして、ポート3306に接続しました。

なぜそれをするのですか?

どうすればforceこのクライアントをポート1234に接続できます(ポート1234が接続できないことが表示されます)。

8
Phuong Nguyen

サーバーが実行しているのと同じホストでmysqlクライアントを実行している場合は、おそらくソケット接続を行っており、ポートをまったく使用していません。コマンドに--protocol=TCPを追加してみてください

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

10
Alex

TCP/IPを使用する場合は、ホストIPを指定する必要があります。ホストがlocalhostの場合は、代わりに127.0.0.1を使用する必要があります。

言い換えると

mysql -uroot -h127.0.0.1 -P1234 -p(ルートにパスワードがある場合)

mysql -uroot -h127.0.0.1 -P1234(ルートにパスワードがない場合)

ログインしたら、このクエリを実行して次のことを確認します。

'ポート'のような変数を表示します。

4
RolandoMySQLDBA