web-dev-qa-db-ja.com

cygwinからmysqlに接続する

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

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

どうしましたか?

55
MCS

MySQLのネイティブWindowsビルドがあると仮定すると、DOS(コマンドプロンプト)ウィンドウとbashの間にターミナルエミュレーションの非互換性があります。 mysqlのプロンプトが表示されません。

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

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

18
Ken Gentle

私はこれに出会ったばかりで、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

構成ファイルに。

70
Svend Hansen

他の回答には、次のkey詳細がありません:

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

  1. デフォルト:c:\cygwin\bin\mintty.exe
  2. 基本:c:\cygwin\Cygwin.batc:\cygwin\bin\bash.exeを起動します)

Win32 MySQLは#2に正しく書き込むことができますが、not#1 Win32 MySQLはstdinを正しくプローブできません (@に感謝ピーターノア)

Win32 MySQLを使用しているかどうか知りたいですか? whichを使用します。

$ which mysql
/cygdrive/c/Program Files/MySQL/MySQL Server 5.1/bin/mysql

ボーナスパスの問題を克服するためのCygwinガイド@ Dustinに感謝

7
Donal Lafferty

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

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

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

5
Clive Stellings
5
DustinB
  1. Cygwin binディレクトリーをpath env変数に入れます。
  2. Cmdを実行してコマンドウィンドウを使用する
  3. コマンドウィンドウでbash -lを実行します

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

2
Steve Qian

Svend Hansenの答えは正しいものです。

  • Windows mysqlサーバーファイルをインストールします(mysql-5.5.25-win32.msiなどから)

  • Cygwinインストーラー(setup.exe)でCygwin mysqlクライアントをインストールします

  • Cygwinクライアント「mysql -u [user] -p [Password] -h [Host]」、私の場合は「mysql -uroot -pXXXX -h127.0.0.1」を使用して、cygwinウィンドウでサーバーに接続します

質問が投稿されたとき、cygwinセットアップはmysqlコンポーネントを提供していなかったと思います。これは現在解決されています。

1

今日この質問を見つけました2018-03-18への回答を探しています

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql.sock' (2 "No such file or directory")

ファイル/etc/my.conf/etc/my.cnf.dの設定ファイルを参照します。これを/etc/my.cnf.d/client.cnfに追加しました。

[client]
Host=127.0.0.1
protocol=tcp

その後、mysql -u root -pを使用してcygwin端末からローカルWindows MySQLインスタンスにアクセスできました

0
Ken Ingram

Cygwinを再インストールし、パッケージ内のmysqlの再インストール検索中にmysqlクライアントをインストールすると、正常に動作します。

0
Praveen Kishor

Althoug Svend Hansen answer にはいくつかのポイントがありますが、別のことは環境変数のPATHです-mysqlへのパスcygwinのパスの前にある場合

which mysql

表示されます

/cygdrive/c/Program Files/MySQL/MySQL Server 5.5/bin/mysql

それ以外の場合は、cygwinクライアントが表示されます。

参照としてウィキペディアは言う:

一部のプログラムは、インストール中にディレクトリをPATH変数のコンテンツのfrontに追加して、検索プロセスを高速化したりOSコマンドをオーバーライドしたりできます。

0
Bakudan
  1. ダウンロードCygwin
  2. Mysqlクライアントアプリをインストールする

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

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

  4. source .bashrcを実行します

これでmysqlに接続できます

mysql -uユーザー-p

0
Raul Romani

私はこれを満足させるための準修正を作成しました。 cmd.exeでcygwin.batを実行し、mysqlと入力すると、すべて正常に機能しました。

私はすぐに、問題が非常に小さいことに気付きました。

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

Console2にはMinttyよりも堅牢なインターフェース/カスタマイズがあるため、とにかくこれは有利です。私は透明度と色のマッピングオプションが本当に好きです。

0
TryExceptPass

免責事項:以下はMinGW/MSYSのMinTTYの下でこの問題を解決しました。研究から、この同じ根本原因がCygwinにも影響すると考えています。

答えはここに投稿されます: https://stackoverflow.com/a/23164362/1034436

簡単に言うと、mysqlコマンドの先頭にwinptyのconsole.exe(またはエイリアスを持っている)。このソリューションは、nativeWindows MySQL実行可能ファイルで動作し、特別なcygwin/mingwビルドでは動作しませんでした。ただし、winptyをコンパイルする必要がありますが、それは単純で痛みがなく、ドキュメントに従って作業してくれました。

注:これにより、他のいくつかのネイティブWindowsコンソールアプリケーション、つまりPythonおよびOpenSSHでのMercurial)の問題も解決しました。

0
martian111

これを行う:

  1. ur mysql.exeをC:\ Program Files\MySQL\MySQL Server 5.5\binからコピーするだけです
  2. このmysql.exeをC:\ cygwin\usr\local\binに貼り付けます
  3. 今どのmysqlを実行します、それは
0
user2814726