Windows 7にmysql2 gemをインストールしようとしています。mysqlサイトからコネクタをダウンロードし、libmysql.dllをRuby200\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
2014年9月30日編集
この回答が投稿されたとき、64ビットRailsインストーラーは推奨バージョンではありませんでした-今では人々がもっと使用し始めているようです。 MySQL Connectorをダウンロードするとき、インストールしたRailsのバージョンに対応するために、64ビットまたは32ビットをダウンロードする必要があることに注意してください。
驚くべきことに、私は偶然にも似たような性質の何かを探していたので、非常に早朝に答えを見つけました。非常に簡単なように見えるので、なぜこのための単一の簡単なガイドがないのかはよくわかりません!
何らかの理由で、gemをインストールするときにmysql-dirを指定するだけでは、他のサブディレクトリが取得されないため、パラメータを手動で設定する必要があります。
同じ問題を経験している他の人のために、私は次のことをしました:
1)以下からMySql Cコネクターをダウンロードします。 http://dev.mysql.com/downloads/connector/c/
注インストーラーをダウンロードせず、OSのアーカイブをダウンロードします
インストールしたRailsのバージョンに対応する32ビットまたは64ビットのアーカイブをダウンロードします。
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"'
違いは何なのかよくわかりませんが、今回はディレクトリを選択しているようです。最初のディレクトリが機能しない場合は、このディレクトリを試してください!
これはあなたがRailsをインストールする方法と関係があると思いますが、今回はパスを正しく設定しているように見えるrailsinstallerを使用しました。
ここでの結果の多くは、使用しているシェルに依存しているようです。多くの人がPowerShellで問題を抱えているので、使用することはお勧めしません。昇格したコマンドプロンプトでこれを行いました。
最後に、Railsを実行したときにmysql2 gemに関するエラーが発生した場合、mysqlコネクタのLIBディレクトリからRailsがインストールされているbinディレクトリにlibmysql.dllをコピーする必要があります。
@Mrk Fldigの解決策を試しましたが、うまくいきませんでした...それで問題を解決したのは:
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コネクタがすでに含まれています。したがって、--with-mysql-dir
または--with-mysql-lib
パラメーターなしで--with-mysql-include
パラメーターのみを渡すと、gemはlib
とinclude
の同じディレクトリを参照します。ディレクトリ
Ruby 2.1.3、Windows 8.1およびMySQL Server 5.7。すべてのx64ビット。
Ruby dk.rb init
Ruby dk.rb install
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"'
提供されたすべてのメソッドを試しましたが、同じエラーが何度も表示されます:(
幸いなことに、古いバージョンはエラーなしでインストールされました!
gem uninstall mysql2
gem install mysql2 -v 0.2.6
これは、Windows 8 64ビットとRuby 64ビットを使用して同じエラーで私のために働いたものです
次のコマンドを実行します:
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"'
お役に立てれば
Cygwinの場合、さまざまな手順を統合できました。
次の手順を試してください。
私が想定し:
1)myslq2 gemをアンインストールします。
$ gem uninstall mysql2
2)パスオプションを指定してmysql2 gemを再インストールします。
$ gem install mysql2 -- '--with-mysql-lib="C:\wamp\bin\mysql\mysql5.6.12\lib" --with-mysql-include="C:\wamp\bin\mysql\mysql5.6.12\include"'
3)C:\ wamp\bin\mysql\mysql5.6.12\libにあるlibmysql.dllをC:\ Ruby200-x64\binにコピーします
4)ファイル「Gemfile」をRails appで開き、編集してmysql2を有効にします:
gem 'mysql2'
5)Railsサーバー:
$ Rails server
6)ブラウザを開き、localhost:3000 /に移動します
ここに私のために働いたものがあります:
gem install mysql2 -- '--with-mysql-dir="C:\wamp\bin\mysql\mysql5.5.xx"'
数時間検索していて、このバリエーションが示唆されていないので、うまくいけば誰かに役立つでしょう!
私はまだmysql2 gemで問題を抱えていますが、以下のアプローチはWindows EnvにRoRでmysqlをインストールするのに役立ちました。
ステップ1:Gemファイルの変更:({app}/Gemfile)
Mysql2の更新-> mysql
ステップ2:database.ymlファイル({app} /config/database.yml)の更新
アダプターの変更:mysql2->アダプター:mysql
ホスト:localhost->ホスト:127.0.0.1
ステップ3:Downoad 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:バンドル更新&& Start Rails server
Rubyインストーラーrubyinstaller-devkit-2.5.3-1-x64
MySQLコネクター:mysql-connector-c-6.1.11-win32 https://downloads.mysql.com/archives/c-c/?version=6.1.2&os=src
宝石のインストール:gem install mysql2 --platform = Ruby---with-mysql-lib = "c:\ mysql-connector-c-6.1.11-win32"
また、gemをインストールする前に、ウイルス対策を無効にしてみてください。私は次のコマンドを実行した後にインストールされました:
gem install mysql2 --platform=Ruby -- '--with-mysql-lib=
"C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --wit
h-mysql-dir="C:\mysql-connector"'
私のアンチウイルスが有効になったとき、同じコマンドが動作しませんでした。Rubyファイルを胸に押し付けていました。これが誰かの助けになることを願っています。