web-dev-qa-db-ja.com

Ruby Windows 7でのMYSQL2 gemのインストール

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
35
Mrk Fldig

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をコピーする必要があります。

104
Mrk Fldig

@Mrk Fldigの解決策を試しましたが、うまくいきませんでした...それで問題を解決したのは:

  1. 最新のMySQLをダウンロードしました Installer Windows 7 32ビット用
  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コネクタがすでに含まれています。したがって、--with-mysql-dirまたは--with-mysql-libパラメーターなしで--with-mysql-includeパラメーターのみを渡すと、gemはlibincludeの同じディレクトリを参照します。ディレクトリ

7

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"'
6
Nebojisa

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

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

gem uninstall mysql2
gem install mysql2 -v 0.2.6
1
Gediminas

これは、Windows 8 64ビットとRuby 64ビットを使用して同じエラーで私のために働いたものです

  1. MySQL Server 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"'
    

お役に立てれば

1
Omar M.

Cygwinの場合、さまざまな手順を統合できました。

  1. Cygwin setup.exeを使用して、gcc、g ++、make、cmakeおよびlibmysqlclient-develを(cygwinポートから)ダウンロードします
  2. Windows用のc/connector srcをmysqlサイトからダウンロードします。 6.xバージョンをダウンロードしました。 OR libmysqlclient-develのバージョンをダウンロード(どこからわからない)
  3. unzip
  4. cd dir_connector
  5. 必須ではなくRISKYですが、cygwin libmysqlclient-develバージョンが5.5.40の場合、dir_connector/VERSIONファイルのバージョンを5.5.40に変更します
  6. mkdirビルド
  7. cdビルド
  8. stdlib.hのコメントdtoa、そうでない場合はコンパイルが失敗します
  9. cmake ..
  10. make
  11. インストールする
  12. gem install mysql2---with-mysql-config =/usr/local/mysql/bin/mysql_config
0
ndas

次の手順を試してください。

私が想定し:

  • a)windows7を使用します
  • b)Ruby 2+ C:\ Ruby200-x64で
  • c)Rails 4+がRubyにインストールされている
  • d)C:\ wampにインストールされ、実行中のWAMP

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 /に移動します

0
Edoardo

ここに私のために働いたものがあります:

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

数時間検索していて、このバリエーションが示唆されていないので、うまくいけば誰かに役立つでしょう!

0
user1105056

私はまだ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

0
Prasanth RJ

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"

0
dnthanh

また、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ファイルを胸に押し付けていました。これが誰かの助けになることを願っています。

0
hira umair