简体   繁体   中英

gem mysql2 segmentation fault on Win7x64, Ruby 2.0, MySQL 5.6

Rails 4 crashes when I use the latest versions: MySQL-5.6.13 together with mysql-connector-c-6.1.1-winx64.

C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.13/lib/mysql2/mysql2.so: [BUG] Segmentation fault ruby 2.0.0p195 (2013-05-14) [x64-mingw32]

As I learned from

...mysql2/mysql2.so: [BUG] Segmentation fault ruby 2.0.0p247

there is no remedy, even when using win32. So, should I roll back to Rails3 and/or Ruby 1.9?

The libmysql.lib included in the MySQL Connector/C 64 bit is not compatible with the mingw64-gcc compiler.

You need to generate mingw64 compatible libmysql.lib file.

To generate libmysql.lib file, you need gendef.exe, which can obtain from mingw-w64 distribution(I got from https://code.google.com/p/structure-svm-map/downloads/detail?name=svm-map-win.zip&can=2&q= )

In the lib folder of the mysql connector, produce libmysql.lib with the following steps.

gendef.exe libmysql.dll

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

And running the normal gem install command. gem install mysql2 -v '0.3.12b6' -- --with-opt-dir="..."

NOTE: In case of MySQL Connector/C 6.1, due to the version comparison routine, you cannot use mysql2 module with the following exception. RuntimeError: Incorrect MySQL client library version! This gem was compiled for 5.7.2-m12 but the client library is 6.1.0.

You should use mysql-connector-c-6.0.2-winx64.msi in http://dev.mysql.com/downloads/connector/c/6.0.html#downloads

Source: https://bugs.ruby-lang.org/issues/8591

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM