35

Windows 7 に mysql2 gem をインストールしようとしています。mysql サイトからコネクタをダウンロードし、libmysql.dll を ruby​​200\bin に配置しました。

次に、gem install mysql2 を実行します。

これらは結果です。私はここでぼんやりしていますか?

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

    C:/Ruby200/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby200/bin/ruby
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/
extconf.rb:37:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError
)


Gem files will remain installed in C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.
3.13 for inspection.
Results logged to C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.13/ext/mysql2/g
em_make.out
4

17 に答える 17

108

編集 30/09/2014

この回答が投稿されたとき、64 ビットの Rails インストーラーは推奨されるバージョンではありませんでした。MySQL コネクタをダウンロードするときは、インストールしたレールのバージョンに対応する 64 ビットまたは 32 ビットをダウンロードする必要があることに注意してください。

驚いたことに、たまたま同じような性質のものを探していたので、今朝非常に早い段階で回答を得ることができました。非常に単純なように見えるため、これに関する単一の簡単なガイドがない理由はよくわかりません!

何らかの理由で、gem をインストールするときに mysql-dir を指定するだけでは、他のサブディレクトリが反映されないため、パラメーターを手動で設定する必要があります。

同じ問題を経験している他の人のために、私は次のことを行いました:

1) MySql C Connector をhttp://dev.mysql.com/downloads/connector/c/からダウンロードします。

注意 インストーラーをダウンロードするのではなく、お使いの OS の ARCHIVE をダウンロードしてください。

インストールしたレールのバージョンに対応する 32 ビットまたは 64 ビットの ARCHIVE をダウンロードします。

2) ファイルを C:\mysql-connector に抽出します。

3)次に実行しました:

 gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysql-connector"'

出来上がりはすべて正常に機能しています。

編集 30/01/2014

ブリックされたマシンで新規インストールを行う必要がありましたが、ステップ 3 のコマンドが機能しませんでした。機能したのは次のとおりです。

gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"'

違いはよくわかりませんが、今回はディレクトリを正常に取得しているように見えるので、最初のディレクトリが機能しない場合は、これを試してください!

これは、レールのインストール方法に関係していると思います。今回は、パスを正しく設定しているように見える railsinstaller を使用しました。

ここでの結果の多くは、使用しているシェルに依存しているようです。多くの人がpowershellで問題を抱えているため、使用することはお勧めしません. 昇格したコマンドプロンプトでこれを行いました。

最後に、RAILS S を実行したときに mysql2 gem に関するエラーが発生した場合は、libmysql.dll を mysql コネクタの LIB ディレクトリから rails がインストールされている bin ディレクトリにコピーする必要があります。

于 2013-09-26T08:29:20.350 に答える
7

@Mrk Fldig の解決策を試しましたが、うまくいきませんでした...問題を解決したのは次のとおりです。

  1. Windows 7 32ビット用の最新のMySQLインストーラーをダウンロードしました
  2. 次のコマンドで gem をインストールしました。gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/Program Files/MySQL/MySQL Connector C 6.1 6.1.2/"'

注意すべき落とし穴の 1 つは、バックスラッシュ (\) を通常のスラッシュ (/) に変更したことです。バックスラッシュを使用して同じ手順を試しましたが、うまくいきませんでした。

MySQL Connector C 6.1 6.1.2インストーラーには、ディレクトリに MySQL 用の C コネクタが既に含まれています。したがって、orパラメーター--with-mysql-dirなしでパラメーターのみを渡すと、gem はおよびディレクトリと同じディレクトリを参照します。--with-mysql-lib--with-mysql-includelibinclude

于 2013-12-13T13:54:59.520 に答える
6

Ruby 2.1.3、Windows 8.1、および MySQL Server 5.7 の手順。すべて x64 ビット。

  1. 開発キットをダウンロード
  2. 抽出された開発キット。
  3. CMD を実行し、開発キットが抽出されたディレクトリに移動します
  4. 走るruby dk.rb init
  5. 走るruby dk.rb install
  6. 走るgem install mysql2 -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.7\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.7\include" --with-mysql-dir="c:\Program Files\MySQL\MySQL Server 5.7"'
于 2014-10-09T23:18:49.920 に答える
1

これは、Windows 8 64ビットでruby 64ビットを使用して同じエラーに対して私にとってうまくいったものです

  1. MySQL サーバー 5.6 64 ビットをダウンロードしてインストールします。
  2. 次のコマンドを実行します。

    gem install mysql2 -v '0.3.16' -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.6\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.6\include"'
    

お役に立てれば

于 2014-08-12T02:11:18.927 に答える
1

提供されたすべての方法を試しましたが、同じエラーが何度も表示されます:(

幸いなことに、古いバージョンはエラーなしでインストールされました!

gem uninstall mysql2
gem install mysql2 -v 0.2.6
于 2014-05-30T12:24:35.237 に答える
0

私はまだmysql2 gemに問題がありますが、以下のアプローチは、Windows環境にRoRでmysqlをインストールするのに役立ちました.

ステップ 1 : Gem ファイルの変更 : ({app}/Gemfile)

mysql2 を更新 --> mysql

ステップ 2 : database.yml ファイル ({app}/config/database.yml) の更新

アダプタを変更: mysql2 --> アダプタ: mysql

ホスト: localhost --> ホスト: 127.0.0.1

ステップ 3 : mysql-connector-c-noinstall-6.0.2-win32 をダウンロードする

ステップ 4 : mysql-connector-c-noinstall-6.0.2-win32\lib\libmysql.dll ファイルを C:\RailsInstaller\Ruby1.9.3\bin にコピーします。

ステップ 5 :bundle update && Start rails server

于 2014-05-21T09:15:19.943 に答える
0

これが私のために働いたものです:

gem install mysql2 -- '--with-mysql-dir="C:\wamp\bin\mysql\mysql5.5.xx"'

数時間検索していて、このバリエーションが提案されていないので、誰かの役に立てば幸いです!

于 2014-05-31T14:50:47.667 に答える
-1

私は純粋な運だけでこれに成功しましたが、1時間の地獄の後、明らかに非常に短縮されたソリューションを共有する必要があるように感じますが、多くの手順は自分で行う方法を理解できると思います.

私のマシンはWin 7 64ビットです。バージョン 0.3.16 をインストールできました

  1. ruby バージョン 2.0.0p481 をインストール (?)
  2. Devkit 何とか何とか
  3. レール バージョン 4.0.0 をインストールする
  4. Mysql Connector C 64 ビット zip ファイルをダウンロードし、C ドライブに mysqlc として配置します。
  5. そのビンからDLLを取り出し、rubyのlibに入れます
  6. gem install mysql2 -- -- with-mysql-dir="C:\mysqlc"
于 2014-07-26T21:16:30.473 に答える
-1

Windows 7では、既存の回答が部分的な解決策を提供していることがわかりましたが、それでもインストールできませんでした。

私が抱えていた問題は、私が使用した MySQL Community Edition Windows インストーラーが、C:\MySQL\MySQL Connector C 6.1.3. gem のビルド プロセスは、「C:\MySQL\MySQL」が見つからないことを報告していました (その前に、Program Files にあると、「C:\Program\includes」が見つからないと不平を言いました)。明らかにスペースが問題であり、それが理解できるそれらを回避する方法を見つけることができませんでした-おそらく誰かがそれらの1つを提案できるでしょう.

これらを変更するとインストールが壊れるかどうかわからなかったので、問題が発生した理由を理解したら、次のようにコマンドラインからシンボリックリンクを作成しました(cmdpowershell よりも簡単なもの):

C:\MySQL> mklink /D ConnectorC ".\MySQL Connector C 6.1.3"

次に、次のインストール行を使用できます。

 gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/MySQL/ConnectorC/"'

これは正しく機能しました。

また、使用しようとしたところ、この問題に遭遇したため、MySQL の lib ファイルを C コネクタの lib フォルダーから移動すると役立つ可能性があることに注意してください。

于 2014-04-09T09:24:09.583 に答える
-1

これは、Windows Server 2012 SP2 に対して行ったことです。他に何も機能しませんでした...

エラー受信後'while installing mysql2 (0.3.17), and bundler cannot continue' Make sure that 'gem install mysql2 -v '0.3.17' succeeds...

1) MySql C Connector をhttp://dev.mysql.com/downloads/connector/c/からダウンロードします。

2)Extract the file to C:\mysql-connector

3)gem install mysql2 -v '0.3.17' --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"'

注: 上記の -v '0.3.17' は、これなしでは機能しません。

4) bundle install--> 最後に、成功。

于 2016-05-31T14:20:54.750 に答える