答案 0 :(得分:91)
问题是因为您正在尝试安装与rails 3.0.x版本不兼容的最新版本的mysql2
所以,在你的Gemfile中更改mysql2 gem的行:
gem 'mysql2', '< 0.3'
然后bundle
命令
然后当新的mysql2 gem文件(我认为是0.2.7)时你将解决问题。
答案 1 :(得分:2)
如果仍然无法正常工作,请尝试:
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Users/YOUR_USER_NAME/.rvm/gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle
答案 2 :(得分:1)
gem'mysql2','&lt; 0.3'是Rails 3.0.7(3.1之前)的唯一方法
更新:对不起,情况并非如此,也没有用,有更好的方法:
vendor / bundle / ruby / 1.9.1 / gems / mysql2-0.3.2 / lib / active_record / connection_adapters $ [rails307] $ ls em_mysql2_adapter.rb mysql2_adapter.rb
从mysql2 gem version 0.2.x获取mysql2_adapter.rb文件并将其复制到上述位置
现在它适用于Gemfile中的gem'mysql2'
答案 3 :(得分:1)
在尝试@eveevans提供的解决方案后,我仍然遇到版本问题。然后阅读@rubyconvict的建议,我想的是为gem使用-v选项而不是推送文件。
这是我发现的最终解决了我与DreamHost上可怕的“mysql2版本(0.3.2)”消息的斗争:
# in mysql, create example_app & example_app_test ...
# ... for the purposes of this example only, production == development db
rails new example_app --database=mysql --freeze
cd example_app
vim config/database.yml
# change settings for host, user, password ...
# ... database for test (example_app_test) ...
# ... & database for production & development (example_app)
vim Gemfile
# gem 'mysql2', '< 0.3'
gem uninstall mysql2 # if installed: gem list -d mysql2
gem install mysql2 -v 0.2.7
rake db:migrate
从那里开始,我可以转向其他RoR乐趣,比如修改路线( vim config / routes.rb ......但是你的里程可能会有所不同)。
答案 4 :(得分:0)
警告:请使用0.2.x. 如果您计划使用它,则会发布 Rails&lt; = 3.0.x
所以简而言之,只需使用0.2.x分支中最新的mysql2 gem。