我正在使用 windows7x64、ruby2.0.0p247、rails4.0.0 和 mysql5.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]

我怎样才能摆脱这个错误?

最佳答案

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 模块,但以下异常(exception)。运行时错误: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

关于mysql - ...mysql2/mysql2.so : [BUG] Segmentation fault ruby 2. 0.0p247,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18160175/

10-13 05:31