【问题标题】:gem mysql2 segmentation fault on Win7x64, Ruby 2.0, MySQL 5.6Win7x64、Ruby 2.0、MySQL 5.6 上的 gem mysql2 分段错误
【发布时间】:2013-09-15 08:12:27
【问题描述】:

当我使用 最新 版本时,Rails 4 崩溃:MySQL-5.6.13 连同 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] 分割错误 ruby​​ 2.0.0p195 (2013-05-14) [x64-mingw32]

据我所知

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

没有补救措施,即使使用 win32。 那么,我应该回滚到 Rails3 和/或 Ruby 1.9 吗?

【问题讨论】:

标签: mysql ruby-on-rails windows gem


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 2012-03-28
    • 2015-12-08
    • 2011-07-17
    • 2013-10-26
    • 2012-01-13
    相关资源
    最近更新 更多