... mysql2 / mysql2.so:[BUG]分段错误ruby 2.0.0p247

时间:2013-08-10 08:41:10

标签: mysql ruby-on-rails ruby windows

我使用的是Windows 7x64,ruby2.0.0p247,rails 4.0.0和mysql 5.5.27。
当我运行$ rails server命令时,我收到以下错误。

C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.13/lib/mysql2/mysql2.so: [BUG] Segmentation fault
ruby 2.0.0p247 (2013-06-27) [x64-mingw32]

如何摆脱这个错误?

1 个答案:

答案 0 :(得分:3)

MySQL Connector / C 64位中包含的libmysql.lib与mingw64-gcc编译器不兼容。

您需要生成与mingw64兼容的libmysql.lib文件。

要生成libmysql.lib文件,需要gendef.exe,它可以从mingw-w64发行版中获取(我来自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