我正在使用ruby 2.3,并且在gemfile中,我已经列出了mysql2 gem。但是当我尝试运行rake db:migrate
时,我得到以下内容:
/Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2.rb:31:in `require': incompatible library version - /Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2/mysql2.bundle (fatal)
我似乎无法解决这个问题。我已经用Homebrew安装了Mysql 5.7,尝试更新捆绑包,卸载并重新安装mysql2 gem,但都无济于事。
我如何解决这个问题?
答案 0 :(得分:39)
我最终用gem pristine --all
答案 1 :(得分:8)
我已使用gem pristine mysql2
后跟spring stop
解决此问题。
答案 2 :(得分:0)
我遇到了同样的问题。我安装了ruby 2.3.4并使用了rails 4.6.2。
有两个问题原因,我使用的托管公司的支持团队帮助我解决了这个问题。
首先,安装的mysql2 lib默认链接到ruby 1.8而不是ruby 2
# lld ../2.2.0/mysql2-0.4.4/mysql2/mysql2.so
...
...
libruby.so.1.8 => /usr/lib64/libruby.so.1.8 (0x00007f2af1f8a000)
...
第二个问题是使用已安装的mysql server config
编译lib因此必须卸载mysql2 gem并使用正确的ruby lib重新安装并使用正确的mysql配置进行编译。
以下是命令。
gem uninstall mysql2
gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config --with-opt-lib=/where/my/ruby22/lib_was_located/
答案 3 :(得分:0)
我在迁移到Ubuntu 16.04时遇到了这个问题
以下做了诀窍
sudo apt-get install g++
sudo apt-get install build-essential
答案 4 :(得分:0)
运行sudo gem pristine mysql2对我没用。
我必须卸载并重新安装mysql2 gem。
答案 5 :(得分:0)
唯一对我有用的是
gem安装nokogiri -v 1.10.2
之后,就可以了。