2

最新バージョンの MySQL-5.6.13 と mysql-connector-c-6.1.1-winx64 を使用すると、Rails 4 がクラッシュします。

C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.13/lib/mysql2/mysql2.so: [バグ] セグメンテーション違反 ruby​​ 2.0.0p195 (2013-05-14) [x64- mingw32]

から学んだように

...mysql2/mysql2.so: [BUG] セグメンテーション違反 ruby​​ 2.0.0p247

win32 を使用している場合でも、解決策はありません。では、Rails3 や Ruby 1.9 にロールバックする必要がありますか?

4

1 に答える 1

3

MySQL Connector/C 64 ビットに含まれる libmysql.lib は、mingw64-gcc コンパイラと互換性がありません。

mingw64 互換の libmysql.lib ファイルを生成する必要があります。

libmysql.lib ファイルを生成するには、mingw-w64 ディストリビューションから取得できる gendef.exe が必要です ( https://code.google.com/p/structure-svm-map/downloads/detail?name=svmから入手しました)。 -map-win.zip&can=2&q= )

mysql コネクタの lib フォルダーで、次の手順で libmysql.lib を生成します。

gendef.exe libmysql.dll

dlltool -v --dllname libmysql.dll --def libmysql.def --output-lib libmysql.lib

通常の gem install コマンドを実行します。gem install mysql2 -v '0.3.12b6' -- --with-opt-dir="..."

注: MySQL Connector/C 6.1 の場合、バージョン比較ルーチンが原因で、次の例外を除いて mysql2 モジュールを使用できません。RuntimeError: MySQL クライアント ライブラリのバージョンが正しくありません! この gem は 5.7.2-m12 用にコンパイルされましたが、クライアント ライブラリは 6.1.0 です。

http://dev.mysql.com/downloads/connector/c/6.0.html#downloadsで mysql-connector-c-6.0.2-winx64.msi を使用する必要があります。

ソース: https://bugs.ruby-lang.org/issues/8591

于 2013-10-18T16:06:55.710 に答える