2011-05-26 16 views
16

Tengo problemas para encontrar una solución a este problema. Estoy recibiendo el errorrails mysql error de adaptador

favor instalar el adaptador de MySQL: 'joya instalar activerecord-MySQL-adaptador'

cuando especifico ya sea ruby-mysql o mysql2 en mi Gemfile. Esto solo ha sucedido desde que me actualicé a Rails 3.1.0-rc1. Estoy ejecutando OSX 10.6, Ruby 1.9.2.

cody$ rails c 
/Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc1/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the mysql adapter: `gem install activerecord-mysql-adapter` (mysql is not part of the bundle. Add it to Gemfile.) (RuntimeError) 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc1/lib/active_record/connection_adapters/abstract/connection_specification.rb:68:in `establish_connection' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc1/lib/active_record/connection_adapters/abstract/connection_specification.rb:60:in `establish_connection' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc1/lib/active_record/connection_adapters/abstract/connection_specification.rb:55:in `establish_connection' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc1/lib/active_record/railtie.rb:69:in `block (2 levels) in <class:Railtie>' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0.rc1/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0.rc1/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0.rc1/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0.rc1/lib/active_support/lazy_load_hooks.rb:42:in `each' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.1.0.rc1/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc1/lib/active_record/base.rb:2135:in `<top (required)>' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.1.0.rc1/lib/active_record/railtie.rb:34:in `block in <class:Railtie>' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc1/lib/rails/railtie.rb:177:in `call' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc1/lib/rails/railtie.rb:177:in `block in load_console' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc1/lib/rails/railtie.rb:177:in `each' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc1/lib/rails/railtie.rb:177:in `load_console' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc1/lib/rails/application.rb:115:in `block in load_console' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc1/lib/rails/application/railties.rb:8:in `each' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc1/lib/rails/application/railties.rb:8:in `all' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc1/lib/rails/application.rb:115:in `load_console' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc1/lib/rails/commands/console.rb:26:in `start' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc1/lib/rails/commands/console.rb:8:in `start' 
from /Users/cody/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.1.0.rc1/lib/rails/commands.rb:40:in `<top (required)>' 
from script/rails:6:in `require' 
from script/rails:6:in `<main>' 

Aquí está la salida gem env

cody$ gem env 
RubyGems Environment: 
- RUBYGEMS VERSION: 1.6.2 
- RUBY VERSION: 1.9.2 (2011-02-18 patchlevel 180) [x86_64-darwin10.7.3] 
- INSTALLATION DIRECTORY: /Users/cody/.rvm/gems/ruby-1.9.2-p180 
- RUBY EXECUTABLE: /Users/cody/.rvm/rubies/ruby-1.9.2-p180/bin/ruby 
- EXECUTABLE DIRECTORY: /Users/cody/.rvm/gems/ruby-1.9.2-p180/bin 
- RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-darwin-10 
- GEM PATHS: 
    - /Users/cody/.rvm/gems/ruby-1.9.2-p180 
    - /Users/cody/.rvm/gems/[email protected] 
- GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - :sources => ["http://gems.rubyforge.org/", "http://gems.github.com"] 
- REMOTE SOURCES: 
    - http://gems.rubyforge.org/ 
    - http://gems.github.com 
+5

Creo que he solucionado mi problema. Configuré 'adapter: mysql2' en lugar de' adapter: mysql' en database.yml Me disculpo por el ruido. – codr

+0

sugieren que el póster original acepte la respuesta de Brad Folkens –

Respuesta

11

que tenía que cumplir el uso de mysql2 joya versión 0.2.7 y al mismo tiempo tratando de mejorar mis rieles 3.0.7 aplicación para 3.1.0.rc1, también me di cuenta, que necesitará las siguientes nuevas gemas en su Gemfile, también:

gem 'mysql2', '< 0.3' # as stated above 

# Asset template engines 
gem 'json' 
gem 'sass' 
gem 'coffee-script' 
gem 'uglifier' 
# other required things for rails 3.1 
gem 'jquery-rails' 
gem 'mustang' # this is ONE execjs backend of many, and the only one that worked for me. 

Dime si eso funcionó para usted.

+1

¿Alguna razón para restringir la versión de la gema a '<0,3'? – jordanstephens

56

Deberá cambiar su config/database.yml para usar el adaptador mysql2 en lugar de mysql.

tanto en lugar de:

adapter: mysql 

Con:

adapter: mysql2 
+1

Una nota para cualquier persona que use el complemento de Amazon RDS en Heroku, tendrá que hacer este cambio, y también cambiar la URL de la base de datos en el complemento RDS para usar 'mysql2: //' en lugar de 'mysql: //' de lo contrario, seguirá recibiendo el error. –

+0

Gracias, esto funcionó para mí;) –

1

solucionado el problema mediante la actualización del Gemfile para mi aplicación para identificar mysql2 como parte del paquete.

Para ello, vaya a la raíz de su aplicación, ejecute open gemfile

Añadir la línea gem 'mysql2', '< 0.3.7' directamente debajo de la línea de joya para los carriles.

Mientras que en la terminal en la raíz de su aplicación, ejecute bundle install

Run bundle show mysql2 para verificar el paquete funcionó. Deberías ser bueno para ir con el adaptador ahora.

Mi entorno es Rails 3.1, MySql 5.5, Ruby 1.9.2.

0

Creé un proyecto de Rails en Windows y lo moví a una máquina que ejecuta Fedora. Resolví este problema cambiando el nombre de "Gemfile.lock" a "old_Gemfile.lock". Por supuesto, aún debe especificar el adaptador como 'mysql2' e incluir la gema adecuada en su archivo gem.