node - Por favor, instale el adaptador mysql ''gem install activerecord-mysql-adapter''
nodejs mysql2 example (15)
Tengo problemas para encontrar una solución a este problema. Me aparece el error:
Please install the mysql adapter: ''gem install activerecord-mysql-adapter''
/Users/ Andy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/rubygems_integration.rb:143:in `block in replace_gem'': Please install the mysql adapter: `gem install activerecord-mysql-adapter` (mysql is not part of the bundle. Add it to Gemfile.) (LoadError)
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/mysql_adapter.rb:5:in `<top (required)>''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `block in require''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:236:in `load_dependency''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:48:in `resolve_hash_connection''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:39:in `resolve_string_connection''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:23:in `spec''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:127:in `establish_connection''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/railtie.rb:76:in `block (2 levels) in <class:Railtie>''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/lazy_load_hooks.rb:26:in `on_load''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/railtie.rb:74:in `block in <class:Railtie>''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/initializable.rb:30:in `instance_exec''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/initializable.rb:30:in `run''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/initializable.rb:55:in `block in run_initializers''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/initializable.rb:54:in `each''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/initializable.rb:54:in `run_initializers''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/application.rb:136:in `initialize!''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/railtie/configurable.rb:30:in `method_missing''
from /Users/ Andy /config/environment.rb:5:in `<top (required)>''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `block in require''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:236:in `load_dependency''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require''
from /Users/ Andy /config.ru:4:in `block in <main>''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize''
from /Users/ Andy /config.ru:1:in `new''
from /Users/ Andy /config.ru:1:in `<main>''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:40:in `parse_file''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:200:in `app''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/commands/server.rb:46:in `app''
from /Users/ Andy/mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:301:in `wrapped_app''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:252:in `start''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/commands/server.rb:70:in `start''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:55:in `block in <top (required)>''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:50:in `tap''
from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:50:in `<top (required)>''
from script/rails:6:in `require''
from script/rails:6:in `<main>'' ```
Aquí está la salida de gem env
.
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.15
- RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.2.0]
- INSTALLATION DIRECTORY: /Users/ Andy/.rvm/gems/ruby-1.9.2-p290
- RUBY EXECUTABLE: /Users/ Andy/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
- EXECUTABLE DIRECTORY: /Users/ Andy/.rvm/gems/ruby-1.9.2-p290/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-11
- GEM PATHS:
- /Users/ Andy/.rvm/gems/ruby-1.9.2-p290
- /Users/ Andy/.rvm/gems/ruby-1.9.2-p290@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
Si puedo proporcionar más información, por favor hágamelo saber.
Gracias, -Andy
Ps: mi database.yaml
mysql2
ya tiene mysql2
.
1) Necesita actualizar su archivo config/database.yml
y cambiar:
adapter: mysql
dentro
adapter: mysql2
2) Necesita actualizar su Gemfile
y agregar explícitamente la activerecord-mysql2-adapter
allí:
gem ''mysql2''
gem ''activerecord-mysql2-adapter''
Acabo de agregar la siguiente línea a mi Gemfile y funcionó:
gema "mysql"
Antes de:
source ''https://rubygems.org''
gem "rails", "3.2.16"
gem "jquery-rails", "~> 2.0.2"
gem "coderay", "~> 1.1.0"
gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby]
gem "builder", "3.0.0"
...
Después:
source ''https://rubygems.org''
gem "mysql"
gem "rails", "3.2.16"
gem "jquery-rails", "~> 2.0.2"
gem "coderay", "~> 1.1.0"
gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby]
gem "builder", "3.0.0"
...
Desea instalar la gema mysql2
.
Realmente, probablemente Gemfile
agregarlo a tu Gemfile
:
gem "mysql2"
Y luego instala tus gemas con bundler:
bundle install
El problema está en su archivo config / database.yml
Debería tener una línea que especifique que el adaptador es mysql2 (y no mysql)
adapter: mysql2
En lugar de
adapter: mysql
En mi caso, cuando también recibí este error:
rake abortado! Instale el adaptador mysql:
gem install activerecord-mysql-adapter
(mysql no es parte del paquete. Agréguelo a Gemfile).
Después de buscar en Google e intentarlo de muchas maneras, no funcionó. Finalmente, la respuesta es
- Navega hasta la raíz de tu aplicación, ejecuta
open gemfile
- Agregue la línea
gem ''mysql2'', ''< 0.3.7''
directamente debajo de la línea de gemas para los rieles.
Es posible que haya cambiado el adaptador a mysql2 solo para cierto entorno, pero que no esté pasando el entorno al comando rake.
Por ejemplo, solo cambié mysql a mysql2 en el entorno de producción pero estaba ejecutándose
rake generate_secret_token
cuando lo cambié al siguiente funcionó:
rake generate_secret_token RAILS_ENV=production
Esto podría ser tarde, pero la instalación del paquete estaba instalando 0.4.0 . Intenté editar el archivo gem y reemplacé el mysql2
con
gem ''mysql2'', "~>0.3.11"
y entonces
bundle install
en el terminal (Esto instalará mysql2 0.3.11 y no la última versión) Creo que el registro activo tiene problemas para trabajar con la última versión. Bueno, espero que ayude
Estoy enfrentando el mismo problema y obtengo el mismo error cuando ejecuto el comando
gem install activerecord-mysql2-adapter
necesitas instalar libmysqlclient-dev
sudo apt-get install libmysqlclient-dev
Esto funciona para mi
Lo que me ayudó fue especificar el adaptador mysql2 en lugar de mysql (¡tenga en cuenta el dígito!) En config / database.yml.
Nunca lo hubiera creído, pero borrar mi archivo database.yml y volverlo a crear también me resolvió el problema. Gracias Tyler. Pasé horas instalando y desinstalando diferentes versiones de las gemas mysql, mysql2, activerecord-mysql-adapter, etc ... Al final, mi gemfile tiene
gem ''mysql2'', "~>0.3.11"
y mi archivo database.yml tiene
adapter: mysql2
Estoy en OSX 10.8, rieles 3.2.8 y ruby 1.9.3.
Por cierto, experimenté los mismos problemas con el adaptador mysql2 en mi máquina con Windows 7. Desinstalar e incluso eliminar el directorio de la gema activerecord-mysql-adapter también parecía ser crítico.
Si nada ayuda (tiene mysql2
como adaptador en su database.yml
) y está utilizando RVM para administrar sus versiones de ruby, aquí está la solución más simple:
Intenta eliminar todos los conjuntos de gemas antiguas (incluida la global
), instala una nueva versión de rubí y vuelve a agrupar. Podría resolver el problema de esa manera.
Tuve el mismo problema que OP en OSX Lion después de actualizar a Rails 3.2. La eliminación de todas las gemas, la instalación del paquete, etc. no funcionó. Gemfile y database.yml especificaban correctamente mysql2.
Al final, borré y recreé mi database.yml y todo vuelve a funcionar. Probablemente fue un error tipográfico o un carácter oculto en el archivo.
Usted ha mencionado su base de datos. El archivo mysql2
ya tiene mysql2
.
Vale la pena comprobar si tienes activerecord-mysql2-adapter
instalado. (Nota -mysql2-
)
Yo diría que cambie la información comentada en la parte superior en database.yml a
#
# Install the MYSQL driver
# gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
# gem ''mysql2''
#
# And be sure to use new-style password hashing:
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html
segundo: agregue "gem ''mysql2''" (lo que está dentro de las comillas dobles) a gemfile.
guarde todo, haga la instalación del paquete. Espero que ayude.
o simplemente podría ser un error tipográfico.
Paso 1. gem ''mysql2'', "~>0.3.11"
lugar de gem ''mysql2''
en Gemfile
Paso 2. poniendo mysqllib.dll
(disponible en la instalación de mysql C:/wamp/bin/mysql/mysql5.5.24/lib
) en la carpeta C:/ruby2.0.0/bin
resolvió el problema rake db:migrate
C:/ruby2.0.0/bin
y conectó con éxito mis raíles con mysql ( database.yml
contiene mysql2)
Estoy ejecutando Windows 7, 64 bits, 64 bits de MySQL, ruby 2.0.0 [x64-mingw32]
Gracias a todos por sus entradas.