J'ai du mal à trouver une solution à ce problème. Je reçois l'erreur:
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>' ```
Voici la sortie 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 je peux fournir plus d'informations s'il vous plaît faites le moi savoir.
Merci, - Andy
P.s - Mon database.yaml
a déjà mysql2
.
Le problème concerne votre fichier config/database.yml
Vous devriez avoir une ligne qui spécifie que l'adaptateur est mysql2 (et non mysql)
adapter: mysql2
Au lieu de
adapter: mysql
Ce qui m'a aidé a été de spécifier l'adaptateur mysql2 au lieu de mysql (notez le chiffre!) Dans config/database.yml.
Je ne l'aurais jamais cru, mais supprimer mon fichier database.yml et le recréer a résolu le problème pour moi aussi. Merci Tyler. J'ai passé des heures à installer et désinstaller différentes versions des gems mysql, mysql2, activerecord-mysql-adapter, etc ... Au final, mon gemfile a
gem 'mysql2', "~>0.3.11"
et mon fichier database.yml a
adapter: mysql2
Je suis sur OSX 10.8, Rails 3.2.8 et Ruby 1.9.3.
En passant, j’ai rencontré les mêmes problèmes avec l’adaptateur mysql2 sur ma machine Windows 7. Désinstaller et même supprimer le répertoire de la gem activerecord-mysql-adapter semblait également essentiel.
1) Vous devez mettre à jour votre fichier config/database.yml
et modifier:
adapter: mysql
dans
adapter: mysql2
2) Vous devez mettre à jour votre Gemfile
et y ajouter explicitement la dépendance activerecord-mysql2-adapter
:
gem 'mysql2'
gem 'activerecord-mysql2-adapter'
Vous voulez installer le mysql2
gem .
Vraiment, vous devriez probablement l'ajouter à votre Gemfile
:
gem "mysql2"
Et installez ensuite vos gemmes avec bundler:
bundle install
C’est peut-être tard, mais l’installation en bundle était en train d’installer 0.4.0 Alors j’ai essayé de modifier le fichier gem et je remplace mysql2
par
gem 'mysql2', "~>0.3.11"
et alors
bundle install
dans le terminal (Cela installera mysql2 0.3.11 et pas la dernière version). Je pense qu’un enregistrement actif a des problèmes pour travailler avec la dernière version. Eh bien j'espère que ça aide
Étape 1. gem 'mysql2', "~>0.3.11"
au lieu de gem 'mysql2'
dans Gemfile
Étape 2. putting mysqllib.dll
(disponible sur l'installation mysql C:\wamp\bin\mysql\mysql5.5.24\lib
) dans le dossier C:\Ruby2.0.0\bin
a résolu le problème de rake db:migrate
et a correctement connecté mes Rails avec mysql (database.yml
contient mysql2)
Je suis sous Windows 7, 64bit, MySQL 64bit, Ruby 2.0.0 [x64-mingw32]
Merci à tous pour vos contributions.
Si rien ne vous aide (vous avez l'adaptateur mysql2
dans votre database.yml
) et vous utilisezRVMpour gérer vos versions de Ruby, voici la solution la plus simple:
Essayez de supprimer tous vos anciens gemsets (y compris global
), installez une nouvelle version de Ruby et regroupez-la à nouveau. Je pourrais résoudre le problème de cette façon.
J'ai eu le même problème que OP sur OSX Lion après la mise à niveau vers Rails 3.2. La suppression de toutes les gemmes, l’installation en bundle, etc. ne fonctionnaient pas. Gemfile et database.yml spécifaient correctement mysql2.
En fin de compte, j'ai supprimé et recréé mon database.yml et tout fonctionne à nouveau. C'était probablement une faute de frappe ou un caractère caché dans le fichier.
Il est possible que vous ayez changé d'adaptateur en mysql2 pour un environnement donné mais que l'environnement ne soit pas transmis à la commande rake.
Par exemple. J'ai seulement changé mysql en mysql2 dans l'environnement de production mais je courais
rake generate_secret_token
quand je l'ai changé au suivant cela a fonctionné:
rake generate_secret_token Rails_ENV=production
vous avez mentionné que votre fichier database.yaml a déjà mysql2
.
Cela vaut la peine de vérifier si vous avez installé activerecord-mysql2-adapter
. (Remarque -mysql2-
)
Je dirais que changer les informations commentées en haut dans database.yml à
#
# 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
deuxième: ajoutez "gem 'mysql2'" (quel que soit l'intérieur des guillemets) au fichier gem
tout enregistrer, installer en bundle. J'espère que cela pourra aider.
ou cela pourrait simplement être une faute de frappe.
Je suis confronté au même problème et la même erreur se produit lors de l'exécution de la commande
gem install activerecord-mysql2-adapter
vous devez installer libmysqlclient-dev
Sudo apt-get install libmysqlclient-dev
Ça marche pour moi
Dans mon cas, quand j'ai aussi eu cette erreur:
rateau avorté! Installez l’adaptateur mysql:
gem install activerecord-mysql-adapter
(mysql ne fait pas partie du paquet. Ajoutez-le à Gemfile.)
Après avoir cherché sur Google et essayé de nombreuses manières, cela n'a pas fonctionné. Enfin, la réponse est
open gemfile
.gem 'mysql2', '< 0.3.7'
directement sous la ligne gem pour Rails.Pour une ancienne application Rails 2.3.18 Ruby 1.8.7 que j'ai "migrée" vers un nouveau MacBook (High Sierra - 10.13.6), afin de pouvoir exécuter l'application (à l'aide de POW) et d'utiliser le script/la Il fallait désactiver SIP et créer un lien vers un fichier dans le répertoire/urs/lib /. L'Assistant de migration n'a pas pu créer le lien en raison de SIP.
Pour désactiver SIP - Protection de l'intégrité du système
Démarrez en mode de récupération Mac OS comme d'habitude en maintenant les touches Commande et R enfoncées pendant le démarrage du système.
Choisissez la langue comme d'habitude (si applicable)
Dans l’écran «MacOS Utilities», déroulez le menu «Utilities» en haut de l’écran.
Dans le terminal, tapez la commande: csrutil disable
Redémarrez votre ordinateur
Enfin, après le redémarrage, dans Terminal, entrez cette commande:
Sudo ln /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib