DOSプロンプトのmysqlはOKなのにcygwinのmysqlは固まる?
WindowsにMySQLをインストールして運用する場合、DOSプロンプトでは「mysql -u root -p」のようなコマンドで問題なくログインできるのに、cygwinのターミナルで同じコマンドを打っても何も出てこないまま固まるという現象が発生することがあります。
Windows版MySQLクライアントのコマンドは無効
原因はcygwinが参照しているmysqlコマンドの場所なのですが、MySQLをWindows版インストーラーでインストールした場合、whichコマンドで見てみると以下の様なパスになっている場合があります。
$ which mysql /cygdrive/c/Program Files/MySQL/MySQL Server 5.1/bin/mysql
これが問題で、解決するにはcygwinのsetup.exeからMySQLクライアント(mysql: MySQL database client apps)をインストールしてあげる必要があります。
「mysqld」がサーバーで、「mysql」がクライアントです。
うまくインストールできたら、whichコマンドが以下のようになります。
$ which mysql /usr/bin/mysql
ホスト名を明示する必要がある(設定で書き込めば省略可)
ただし、ここで1つ気をつけないといけないことがあります。 新しくインストールしたmysqlクライアントは接続ホストを省略すると、cygwinでインストールしたローカルMySQLサーバーを参照してしまうので、以下のようにホスト名を指定してログインするか、
$ mysql -h 127.0.01 -u root -p
もしくは、「/etc/my.cnf」を以下のように作成しておいて、
$ vi /etc/my.cnf ----------------------------------- [client] host=127.0.0.1 -----------------------------------
いつもどおりに「$ mysql -u root -p」でログインする方法が選択できますので、お好きな方で接続してみてください。
参考にしたサイト:connecting to mysql from cygwin
2014-02-03