DOS プロンプトからは MySQL に正常に接続できますが、cygwin から接続しようとするとハングします。
$/cygdrive/c/Program\ Files/MySQL/MySQL\ Server\ 5.1/bin/mysql -u root -p
どうしたの?
私はこれに出くわしました.cygwinで実行するwindows / DOSコマンドであるという誰かの言及を読んだとき、私は次のwhich mysql
ことを行いました:
$ which mysql
/cygdrive/c/Program Files/MySQL/MySQL Server 5.5/bin/mysql
そこで、「mysql」を検索して cygwin を実行しSetup.exe
、最新の「mysql クライアント」をインストールしました。which mysql
次のようになります。
$ which mysql
/usr/bin/mysql
そしてMySQLコマンドはcygwinで動作します:)
これは古い質問ですが、(私のような) 人々がまだそれに出くわす可能性があるため、ここに実際の回答があるとよいでしょう。
Cygwin から MySQL クライアントを実行しようとすると、次のエラーが返されます。
$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql.sock' (2)
-h 127.0.0.1
次に、次のように明示的なオプションをコマンドラインに追加することで修正できます。
$ mysql -u root -p -h 127.0.0.1
コメントに基づく更新:
-h 127.0.0.1
接続するたびにコマンドラインで指定しないようにするには、次を追加できます。
[client]
host=127.0.0.1
ファイルに/etc/my.cnf
Cygwin の一部のインストールでは、ホストを指定する-h
だけでは不十分な場合があります。その場合は、次も指定してみてください。
--protocol=tcp
または追加
protocol=tcp
設定ファイルに。
MySQL のネイティブ Windows ビルドがあると仮定すると、DOS
(コマンド プロンプト) ウィンドウとbash
. のプロンプトmysql
が表示されません。
これを確認するには、コマンドを入力してから戻ります。おそらく機能しますが、コマンドのプロンプトとエコー (入力した内容) が失われます。
CYGWIN
システムのプロパティまたはのいずれかに回避策があるかもしれませんbash
が、私はこれを解決するために時間をかけたことはありません。
他の回答には、次の重要な詳細がありません。
Cygwin には 2 つのシェルがあります。
c:\cygwin\bin\mintty.exe
c:\cygwin\Cygwin.bat
(起動するc:\cygwin\bin\bash.exe
)Win32 MySQL は #2 に正しく書き込むことができますが、#1 には書き込めません。これは、 Win32 MySQL が stdin を適切にプローブできないためです(@PeterNore に感謝)。
Win32 MySQL を使用しているかどうか知りたいですか? 使用which
、例えば
$ which mysql
/cygdrive/c/Program Files/MySQL/MySQL Server 5.1/bin/mysql
ボーナス: パスの問題を克服するためのCygwinガイド (@Dustinに感謝)
ここに解決策/回避策を投稿しました:
cmd.exe 実行可能ファイルから bash を実行すると、mysql が bash 内で動作します。
これにより、Windows cmd.exe 環境で bash が実行され、mysql を実行しようとすると期待どおりに実行されます。これは Windows 7 で動作しますが、他のバージョンではテストされていません。
その後、MySQL は問題なく実行できます。
SvendHansenの答えは正しいものです。
Windows mysqlサーバーファイルをインストールします(たとえば、mysql-5.5.25-win32.msiから)
cygwinインストーラー(setup.exe)を使用してCygwinmysqlクライアントをインストールします
cygwinクライアント「mysql-u[user]-p [Password] -h [host]」(私の場合は「mysql-uroot -pXXXX -h127.0.0.1」)を使用して、cygwinウィンドウでサーバーに接続します。
質問が投稿されたとき、cygwinセットアップはmysqlコンポーネントを提供していなかったと思いますが、これは現在解決されています。
これを行う:
mysql クライアント アプリをインストールする
.bashrc ファイルにエイリアスを作成する
エイリアス mysql='mysql -h 127.0.0.1'
これでmysqlに接続できます
mysql -u ユーザー -p
私はこれを満足させるセミフィックスを作成しました。cmd.exe で cygwin.bat を実行し、mysql と入力すると、すべて正常に機能しました。
私はすぐに問題がミントであることに気付きました。
簡単な解決策?Console2をダウンロードし、設定で cygwin シェルを指定できます。Console2 を再起動し、mysql を実行すると、出力が表示されます。
Console2 は Mintty よりも堅牢なインターフェース/カスタマイズ機能を備えているため、これはとにかく有利です。透明度とカラー マッピングのオプションがとても気に入っています。