58

DOS プロンプトからは MySQL に正常に接続できますが、cygwin から接続しようとするとハングします。

$/cygdrive/c/Program\ Files/MySQL/MySQL\ Server\ 5.1/bin/mysql -u root -p

どうしたの?

4

14 に答える 14

75

私はこれに出くわしました.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

設定ファイルに。

于 2012-04-03T15:43:50.303 に答える
19

MySQL のネイティブ Windows ビルドがあると仮定すると、DOS(コマンド プロンプト) ウィンドウとbash. のプロンプトmysqlが表示されません。

これを確認するには、コマンドを入力してから戻ります。おそらく機能しますが、コマンドのプロンプトとエコー (入力した内容) が失われます。

CYGWINシステムのプロパティまたはのいずれかに回避策があるかもしれませんbashが、私はこれを解決するために時間をかけたことはありません。

于 2008-12-01T03:19:48.683 に答える
9

他の回答には、次の重要な詳細がありません。

Cygwin には 2 つのシェルがあります。

  1. デフォルト:c:\cygwin\bin\mintty.exe
  2. 基本: 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に感謝

于 2013-07-15T12:59:02.650 に答える
5

ここに解決策/回避策を投稿しました:

cygwin の下の Windows アプリでキーを入力すると認識されないことがある

于 2008-12-02T17:54:08.887 に答える
5

cmd.exe 実行可能ファイルから bash を実行すると、mysql が bash 内で動作します。

  1. デスクトップに cmd.exe のショートカットを作成します。
  2. ショートカットのプロパティを開き、起動ディレクトリを cygwin bin ディレクトリ (通常は C:\cygwin\bin) に変更します。
  3. target パラメーターのコマンドの末尾に「/c bash.exe」を追加します。

これにより、Windows cmd.exe 環境で bash が実行され、mysql を実行しようとすると期待どおりに実行されます。これは Windows 7 で動作しますが、他のバージョンではテストされていません。

于 2012-01-05T13:52:13.187 に答える
2
  1. cygwin bin ディレクトリを path env 変数に入れます。
  2. cmd を実行してコマンド ウィンドウを使用する
  3. cmd ウィンドウで bash -l を実行します

その後、MySQL は問題なく実行できます。

于 2012-04-09T18:03:07.797 に答える
1

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コンポーネントを提供していなかったと思いますが、これは現在解決されています。

于 2012-06-06T12:18:52.590 に答える
0

これを行う:

  1. C:\Program Files\MySQL\MySQL Server 5.5\bin から ur mysql.exe をコピーするだけです。
  2. この mysql.exe を C:\cygwin\usr\local\bin に貼り付けます
  3. mysqlを実行すると、
于 2013-09-25T10:11:21.653 に答える
0
  1. Cygwin をダウンロード
  2. mysql クライアント アプリをインストールする

  3. .bashrc ファイルにエイリアスを作成する

    エイリアス mysql='mysql -h 127.0.0.1'

  4. ソース .bashrc を実行

これでmysqlに接続できます

mysql -u ユーザー -p

于 2015-10-25T05:56:42.350 に答える
0

私はこれを満足させるセミフィックスを作成しました。cmd.exe で cygwin.bat を実行し、mysql と入力すると、すべて正常に機能しました。

私はすぐに問題がミントであることに気付きました。

簡単な解決策?Console2をダウンロードし、設定で cygwin シェルを指定できます。Console2 を再起動し、mysql を実行すると、出力が表示されます。

Console2 は Mintty よりも堅牢なインターフェース/カスタマイズ機能を備えているため、これはとにかく有利です。透明度とカラー マッピングのオプションがとても気に入っています。

于 2013-01-28T22:52:15.180 に答える