April 14, 2012

mysqlコマンドでportを指定しても無視される

mysqlコマンド、ポートを指定するにはオプションで「--port=port_num」あるいは「-P port_num」のように指定します。
マニュアルにそう書いてあります。

しかし、mysqldを別ポートで複数起動しているマシン上で、デフォルトでないポートのmysqlにアクセスしようとしてもできませんでした。

portの指定が効いていないようで、何番を指定しても同じプロセスにつながってしまいます。

色々悩んだ末にたどり着いたのがこれ

http://dev.mysql.com/doc/refman/5.1/ja/invoking-programs.html
Unix 上でのクライアントプログラムには、このホストネーム localhost は特別な意味を持っています。これによってクライアントがUnixソケットファイルを通し MySQL サーバに接続することができるようになります。これはまた、--port もしくは -P オプションがポート番号を特定するために与えられたとしても実行されます。クライアントによって TCP/IP 接続をローカルサーバに確実に行わせるためには、ホスト名、もしくは IP アドレス、ローカルサーバ名のいずれかを 127.0.0.1 に指定するために --host または -h を使用します。--protocol=tcp オプションを使用することによって、localhost に対してもまた、プロトコル接続をさらに明確に指定することができます。
えー!ホスト名を省略したり、localhostで指定していると、TCP/IPではなくUnixソケットで接続されると。
ポートを指定していても、無視されると。

そういう重要なことはmanに書いといてよー!!

matssaku at 21:29│Comments(0)TrackBack(0)clip!DB 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔