0

I can't get rails 3.1RC4 to work with mysql...?

I just made a new test app and there it also fails?

I did: rails new blog2 -d mysql

then in my gemfile: gem 'mysql2'

in the database.yml file:

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

now when i run rails s

i get the following error:

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>'

bundle install:

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.

I am working on a macbook and installed the 32 bit version off mysql when i type mysql --version i see this version: mysql Ver 14.14 Distrib 5.5.15, for osx10.6 (i386) using readline 5.1

And the server is started...

Any suggestions? regards, Thijs

Thijs
  • 387
  • 5
  • 20
  • Library not loaded: libmysqlclient.18.dylib (LoadError) is the line you should be worried about, did you do a bundle install – austinbv Aug 10 '11 at 13:31
  • Yes i did i'll show you what i get in the editted question... – Thijs Aug 10 '11 at 13:33
  • 1
    http://stackoverflow.com/questions/4546698/library-not-loaded-libmysqlclient-16-dylib-error-when-trying-to-run-rails-serve is the exact same problem – austinbv Aug 10 '11 at 13:37

1 Answers1

1

After looking at that other answer you need to point the mysql gem to your libraries installed

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

is the magic command

austinbv
  • 9,297
  • 6
  • 50
  • 82
  • when i type that in i get: install_name_tool: can't open file: /Users/tboeree/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle (No such file or directory) – Thijs Aug 10 '11 at 13:41
  • this is it instead i think: sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.6/lib/mysql2/mysql2.bundle – Thijs Aug 10 '11 at 13:44
  • this worked!! export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH – Thijs Aug 10 '11 at 13:51