31
votes

I have recently upgraded to Rails 3 and created a new application with Rails 3.0.3, but I keep getting an error

Macintosh:$ rails server
=> Booting WEBrick
=> Rails 3.0.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2010-11-28 11:32:47] INFO  WEBrick 1.3.1
[2010-11-28 11:32:47] INFO  ruby 1.8.7 (2010-04-19) [i686-darwin10.4.0]
[2010-11-28 11:32:47] INFO  WEBrick::HTTPServer#start: pid=1055 port=3000


Started GET "/" for 127.0.0.1 at Sun Nov 28 11:32:52 +0000 2010

RuntimeError (!!! Missing the mysql2 gem. Add it to your Gemfile: gem 'mysql2'):


I have a 64 bits machine. Errors are only on documentation and looked like the gem was installed correctly.

Macintosh:$ env ARCHFLAGS="-arch i386" gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions.  This could take a while...
Successfully installed mysql2-0.2.6
1 gem installed
Installing ri documentation for mysql2-0.2.6...
Enclosing class/module 'mMysql2' for class Client not known
Building YARD (yri) index for mysql2-0.2.6...
Installing RDoc documentation for mysql2-0.2.6...
Enclosing class/module 'mMysql2' for class Client not known

I have added the gem in my GemFile

source 'http://rubygems.org'

gem 'rails', '3.0.3'
gem 'mysql2'
gem 'sqlite3-ruby', :require => 'sqlite3'

My GemFile.lock looks like this

GEM
  remote: http://rubygems.org/
  specs:
    abstract (1.0.0)
    actionmailer (3.0.3)
      actionpack (= 3.0.3)
      mail (~> 2.2.9)
    actionpack (3.0.3)
      activemodel (= 3.0.3)
      activesupport (= 3.0.3)
      builder (~> 2.1.2)
      erubis (~> 2.6.6)
      i18n (~> 0.4)
      rack (~> 1.2.1)
      rack-mount (~> 0.6.13)
      rack-test (~> 0.5.6)
      tzinfo (~> 0.3.23)
    activemodel (3.0.3)
      activesupport (= 3.0.3)
      builder (~> 2.1.2)
      i18n (~> 0.4)
    activerecord (3.0.3)
      activemodel (= 3.0.3)
      activesupport (= 3.0.3)
      arel (~> 2.0.2)
      tzinfo (~> 0.3.23)
    activeresource (3.0.3)
      activemodel (= 3.0.3)
      activesupport (= 3.0.3)
    activesupport (3.0.3)
    arel (2.0.4)
    builder (2.1.2)
    erubis (2.6.6)
      abstract (>= 1.0.0)
    i18n (0.4.1)
    mail (2.2.10)
      activesupport (>= 2.3.6)
      i18n (~> 0.4.1)
      mime-types (~> 1.16)
      treetop (~> 1.4.8)
    mime-types (1.16)
    mysql2 (0.2.6)
    polyglot (0.3.1)
    rack (1.2.1)
    rack-mount (0.6.13)
      rack (>= 1.0.0)
    rack-test (0.5.6)
      rack (>= 1.0)
    rails (3.0.3)
      actionmailer (= 3.0.3)
      actionpack (= 3.0.3)
      activerecord (= 3.0.3)
      activeresource (= 3.0.3)
      activesupport (= 3.0.3)
      bundler (~> 1.0)
      railties (= 3.0.3)
    railties (3.0.3)
      actionpack (= 3.0.3)
      activesupport (= 3.0.3)
      rake (>= 0.8.7)
      thor (~> 0.14.4)
    rake (0.8.7)
    sqlite3-ruby (1.2.4)
    thor (0.14.6)
    treetop (1.4.9)
      polyglot (>= 0.3.1)
    tzinfo (0.3.23)

PLATFORMS
  ruby

DEPENDENCIES
  mysql2
  rails (= 3.0.3)
  sqlite3-ruby

Gem list

Macintosh:$ gem list

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.3)
actionpack (3.0.3)
activemodel (3.0.3)
activerecord (3.0.3)
activeresource (3.0.3)
activesupport (3.0.3)
acts_as_ferret (0.4.4)
arel (2.0.4)
builder (3.0.0, 2.1.2)
bundler (1.0.7)
capistrano (2.5.9)
dnssd (1.3)
erubis (2.6.6)
fastthread (1.0.7)
gnuplot (2.2)
highline (1.6.1, 1.5.1)
hpricot (0.8.1)
i18n (0.4.2, 0.4.1)
libxml-ruby (1.1.3)
linecache (0.43)
mail (2.2.10)
memcache-client (1.8.5, 1.7.6)
memcached (0.17.5)
mime-types (1.16)
mysql2 (0.2.6)
net-scp (1.0.4, 1.0.2)
net-sftp (2.0.5, 2.0.2)
net-ssh (2.0.23, 2.0.15)
net-ssh-gateway (1.0.1)
polyglot (0.3.1)
rack (1.2.1, 1.0.1, 1.0.0)
rack-mount (0.6.13)
rack-test (0.5.6)
rails (3.0.3)
railties (3.0.3)
rake (0.8.7, 0.8.4)
rcov (0.9.9, 0.9.8)
rdoc (2.5.11)
RedCloth (4.2.2)
rmagick (2.12.2)
ruby-debug-base (0.10.3)
ruby-debug-ide (0.4.5)
rubygems-update (1.3.7, 1.3.5, 1.3.3)
rvm (1.1.1)
sqlite3-ruby (1.3.2, 1.2.4)
test-spec (0.10.0)
text-format (1.0.0)
text-hyphen (1.0.0)
thor (0.14.6)
treetop (1.4.9)
tzinfo (0.3.23)
yard (0.5.8)

My Mysql is up and running:

Macintosh:$ mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.53 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

This is all I have in my brand new application, but I'm still getting the missing mysql2 gem problem.

I have Snow Leopard 10.6.5 with X Code 3.2.4 installed.

Any idea?

Thanks in advance!

2
Thanks, this just tripped me up. Saved me a lot of time, you have.richo

2 Answers

89
votes

I actually had the wrong adaptor set on my database.yml

So the fix is

development:
  adapter: mysql2
  database: development_database
  username: root
  password:

Instead of

adapter: mysql

Doh!

5
votes

If you're seeing this recently, it's because mysql2 0.3 removed the ActiveRecord Adapter, which is now part of Rails 3.1

WARNING: This version of mysql2 (0.3.2) doesn't ship with the ActiveRecord adapter bundled anymore as it's now part of Rails 3.1
WARNING: Please use the 0.2.x releases if you plan on using it in Rails <= 3.0.x

Adjust your Gemfile accordingly if you're on Rails 3.0.x

gem 'mysql2', '~> 0.2.6'