Gem :: LoadError: Agregue `gem ‘mysql’` a su Gemfile

Gem::LoadError: Specified 'mysql' for database adapter, but the gem is not loaded. Add `gem 'mysql'` to your Gemfile. 

He estado recibiendo este error cuando estaba siguiendo esta guía: http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html y ejecutando

 $ cd activerecord $ bundle exec rake test_sqlite3 

Después de buscar un poco, me han dicho que debo modificar el Gemfile y agregar la gem 'mysql' luego ejecutar la bundle install . Sin embargo, no puedo ver mysql en la lista.

 Resolving dependencies... Using rake (10.1.0) Using i18n (0.6.5) Using json (1.8.0) Using minitest (5.0.8) Using atomic (1.1.14) Using thread_safe (0.1.3) Using tzinfo (0.3.38) Using activesupport (4.1.0.beta) from source at . Using rack (1.5.2) Using rack-test (0.6.2) Using actionpack (4.1.0.beta) from source at . Using builder (3.1.4) Using activemodel (4.1.0.beta) from source at . Using erubis (2.7.0) Using actionview (4.1.0.beta) from source at . Using mime-types (1.25) Using polyglot (0.3.3) Using treetop (1.4.15) Using mail (2.5.4) Using actionmailer (4.1.0.beta) from source at . Using arel (4.0.0) Using activerecord (4.1.0.beta) from source at . Using bcrypt-ruby (3.1.2) Using benchmark-ips (1.2.0) Using bundler (1.3.5) Using coffee-script-source (1.6.3) Using execjs (2.0.2) Using coffee-script (2.2.0) Using thor (0.18.1) Using railties (4.1.0.beta) from source at . Using coffee-rails (4.0.0) Using columnize (0.3.6) Using dalli (2.6.4) Using debugger-linecache (1.2.0) Using debugger-ruby_core_source (1.2.3) Using debugger (1.6.2) Using hike (1.2.3) Using jquery-rails (2.2.2) Using mustache (0.99.4) Using mini_portile (0.5.1) Using nokogiri (1.6.0) Using kindlerb (0.1.1) Using metaclass (0.0.1) Using mocha (0.14.0) Using multi_json (1.8.1) Using racc (1.4.9) Using rack-cache (1.2) Using tilt (1.4.1) Using sprockets (2.10.0) Using sprockets-rails (2.0.0) Using rails (4.1.0.beta) from source at . Using rdoc (3.12.2) Using redcarpet (2.2.2) Using sdoc (0.3.20) Using sqlite3 (1.3.8) Using turbolinks (1.3.0) Using uglifier (2.2.1) Using w3c_validators (1.2) Using yajl-ruby (1.1.0) Your bundle is complete! Gems in the group db were not installed. Use `bundle show [gemname]` to see where a bundled gem is installed. 

Gemfile

 source 'https://rubygems.org' gem 'rails', path: '/home/terence/rails' gem 'arel', github: 'rails/arel' gem 'mysql', '~> 2.9.1' gem 'mysql2', '~> 0.3.13' # Use sqlite3 as the database for Active Record gem 'sqlite3' # Use edge version of sprockets-rails gem 'sprockets-rails', github: 'rails/sprockets-rails' # Use SCSS for stylesheets gem 'sass-rails', github: 'rails/sass-rails' # Use Uglifier as compressor for JavaScript assets gem 'uglifier', '>= 1.3.0' # Use CoffeeScript for .js.coffee assets and views gem 'coffee-rails', github: 'rails/coffee-rails' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', platforms: :ruby # Use jquery as the JavaScript library gem 'jquery-rails' # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks gem 'turbolinks' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 1.2' # Run `rails console` in the browser. Read more: https://github.com/rails/web-console gem 'web-console', group: :development group :doc do # bundle exec rake doc:rails generates the API under doc/api. gem 'sdoc', require: false end # Use ActiveModel has_secure_password # gem 'bcrypt-ruby', '~> 3.1.2' # Use unicorn as the app server # gem 'unicorn' # Use Capistrano for deployment # gem 'capistrano', group: :development # Use debugger # gem 'debugger', group: [:development, :test] 

Pero, si ejecuto la gem list , mi salida es la siguiente:

 *** LOCAL GEMS *** actionmailer (4.0.0) actionpack (4.0.0) activemodel (4.0.0) activerecord (4.0.0) activerecord-deprecated_finders (1.0.3) activesupport (4.0.0) arel (4.0.0) atomic (1.1.14) bcrypt-ruby (3.1.2) benchmark-ips (1.2.0) builder (3.1.4) bundler (1.3.5) bundler-unload (1.0.2) celluloid (0.15.2) chunky_png (1.2.8) coderay (1.0.9) coffee-rails (4.0.0) coffee-script (2.2.0) coffee-script-source (1.6.3) columnize (0.3.6) compass (0.12.2) cyaml (0.0.45) dalli (2.6.4) debugger (1.6.2) debugger-linecache (1.2.0) debugger-ruby_core_source (1.2.3) em-websocket (0.5.0) erubis (2.7.0) eventmachine (1.0.3) execjs (2.0.2) executable-hooks (1.2.3) ffi (1.9.0) formatador (0.2.4) fssm (0.2.10) guard (2.0.3) guard-compass (1.0.0) guard-haml (1.1.0) guard-livereload (2.0.0) haml (4.0.3) hike (1.2.3) http_parser.rb (0.5.3) i18n (0.6.5) jbuilder (1.5.1) jquery-rails (3.0.4, 2.2.2) json (1.8.0) kindlerb (0.1.1) listen (2.0.1) lumberjack (1.0.4) mail (2.5.4) metaclass (0.0.1) method_source (0.8.2) mime-types (1.25) mini_portile (0.5.1) minitest (5.0.8, 4.7.5) mocha (0.14.0) multi_json (1.8.1) mustache (0.99.4) mysql (2.9.1) mysql2 (0.3.13) nokogiri (1.6.0) polyglot (0.3.3) pry (0.9.12.2) racc (1.4.9) rack (1.5.2) rack-cache (1.2) rack-test (0.6.2) rails (4.0.0) railties (4.0.0) rake (10.1.0) rb-fsevent (0.9.3) rb-inotify (0.9.2) rdoc (3.12.2) redcarpet (2.2.2) rubygems-bundler (1.3.4) rvm (1.11.3.8) sass (3.2.12) sass-rails (4.0.0) sdoc (0.3.20) slop (3.4.6) sprockets (2.10.0) sprockets-rails (2.0.0) sqlite3 (1.3.8) thor (0.18.1) thread_safe (0.1.3) tilt (1.4.1) timers (1.1.0) treetop (1.4.15) turbolinks (1.3.0) tzinfo (0.3.38, 0.3.37) uglifier (2.2.1) w3c_validators (1.2) web-console (1.0.3) yajl-ruby (1.1.0) 

database.yml

 # SQLite version 3.x # gem install sqlite3 # # Ensure the SQLite 3 gem is defined in your Gemfile # gem 'sqlite3' development: adapter: sqlite3 database: db/development.sqlite3 pool: 5 timeout: 5000 # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: adapter: sqlite3 database: db/test.sqlite3 pool: 5 timeout: 5000 production: adapter: sqlite3 database: db/production.sqlite3 pool: 5 timeout: 5000 

¿Ayuda por favor?

Encontré otra causa para este error. Mientras tenía instalada la gem mysql2, en mi modelo especifiqué la cadena “mysql” para establecer_connection:

 establish_connection adapter: "mysql", database: "my_database" 

Obviamente, debería ser “mysql2” no “mysql”.

SOLUCIONADO: Esto me llevó un tiempo descifrarlo, y culpo a la culpa de la guía. De todos modos, asegúrese de que está editando el Gemfile correcto, y para hacer una bundle install en el directorio con el Gemfile que ha cambiado. Cuando corri

 $ cd rails $ bundle exec rails new ~/my-test-app --dev 

que en realidad creó una carpeta llamada my-test-app (que contenía un Gemfile) en mi directorio de inicio, pero tuve que ejecutar $ bundle exec rake test_sqlite3 en mi directorio de Rails (que también contenía un Gemfile).

Mirando mi salida arriba, decía que las Gems in the group db were not installed. cuando ejecuté bundle install , y me refería a líneas en mi Gemfile que no se estaban ejecutando, y resultaron ser las líneas de gem que instalan mysql, mysql2 y postgresql. Corrigí el archivo así:

Gemfile

  # AR gem 'sqlite3', '~> 1.3.6' gem 'mysql', '~> 2.9.1' gem 'mysql2', '~> 0.3.13' gem 'pg', '~> 0.17.0' group :db do # gem 'pg', '>= 0.11.0' # gem 'mysql', '>= 2.9.0' # gem 'mysql2', '>= 0.3.13' end 

Yo tuve el mismo problema. La solución fue que me olvidé de adaptar el Gemfile en consecuencia. Así que cambie al directorio donde creó su aplicación Rails, luego abra el Gemfile con sudo vim Gemfile . Ahí tienes que agregar o eliminar ciertas gems, de acuerdo a tus necesidades. En mi caso tuve que cambiar el db-gem “sqlite3” por “mysql”. Después de eso, guarde el archivo con :wq y ejecute los rails generate [model/controller/view] nuevamente.

Eso ha hecho el trabajo por mí, ¡espero que ayude a algunos de ustedes!