在rails 3.1RC4上使用mysql

时间:2011-08-10 13:21:22

标签: mysql ruby-on-rails-3 rubygems rvm

我无法使用rails 3.1RC4来使用mysql ...?

我刚刚制作了一个新的测试应用程序并且它也失败了?

我做了:rails new blog2 -d mysql

然后在我的gemfile中:gem'mysql2'

在database.yml文件中:

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: blog2_development
  pool: 5
  username: root
  password: password
  socket: /tmp/mysql.sock

现在当我运行rails s

我收到以下错误:

MacBook-van-T-Boeree:blog2 tboeree$ rails s
/Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.6/lib/mysql2.rb:9:in `require': dlopen(/Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError)
  Referenced from: /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.6/lib/mysql2/mysql2.bundle
  Reason: image not found - /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.6/lib/mysql2/mysql2.bundle
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.6/lib/mysql2.rb:9:in `<top (required)>'
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in `require'
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:66:in `each'
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:66:in `block in require'
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:55:in `each'
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler/runtime.rb:55:in `require'
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.15/lib/bundler.rb:120:in `require'
    from /Users/tboeree/Dropbox/rails_projects/blog2/config/application.rb:7:in `<top (required)>'
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc4/lib/rails/commands.rb:52:in `require'
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc4/lib/rails/commands.rb:52:in `block in <top (required)>'
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc4/lib/rails/commands.rb:49:in `tap'
    from /Users/tboeree/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc4/lib/rails/commands.rb:49:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

捆绑安装:

MacBook-van-T-Boeree:blog2 tboeree$ bundle install
Using rake (0.9.2) 
Using multi_json (1.0.3) 
Using activesupport (3.1.0.rc4) 
Using bcrypt-ruby (2.1.4) 
Using builder (3.0.0) 
Using i18n (0.6.0) 
Using activemodel (3.1.0.rc4) 
Using erubis (2.7.0) 
Using rack (1.3.2) 
Using rack-cache (1.0.2) 
Using rack-mount (0.8.2) 
Using rack-test (0.6.1) 
Using hike (1.2.0) 
Using tilt (1.3.2) 
Using sprockets (2.0.0.beta.13) 
Using tzinfo (0.3.29) 
Using actionpack (3.1.0.rc4) 
Using mime-types (1.16) 
Using polyglot (0.3.2) 
Using treetop (1.4.10) 
Using mail (2.3.0) 
Using actionmailer (3.1.0.rc4) 
Using arel (2.1.4) 
Using activerecord (3.1.0.rc4) 
Using activeresource (3.1.0.rc4) 
Using ansi (1.3.0) 
Using bundler (1.0.15) 
Using coffee-script-source (1.1.2) 
Using execjs (1.2.4) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using rdoc (3.9.1) 
Using thor (0.14.6) 
Using railties (3.1.0.rc4) 
Using jquery-rails (1.0.12) 
Using mysql2 (0.3.6) 
Using rails (3.1.0.rc4) 
Using sass (3.1.7) 
Using sass-rails (3.1.0.rc.5) 
Using turn (0.8.2) 
Using uglifier (1.0.0) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

我正在研究一个macbook并在我输入mysql时安装了32位版本的mysql --version我看到这个版本:mysql Ver 14.14 Distrib 5.5.15, for osx10.6 (i386) using readline 5.1

服务器已启动......

有什么建议吗? 问候, 泰斯

1 个答案:

答案 0 :(得分:1)

在查看其他答案后,您需要将mysql gem指向已安装的库

sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

是魔术命令