web-dev-qa-db-fra.com

Gem :: LoadError pour mysql2, mais c'est déjà dans Gemfile

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

Cette erreur s'est produite lors du chargement des fichiers suivants:

active_record/base

C’est l’erreur que j’obtenir en cours d’exécution Rails serveur.

The mysql2 gem has been added to the Gemfile as well.

J'ai fait bundle install, et j'ai essayé de redémarrer le serveur mais j'ai toujours l'erreur.

104
Mysoulisinseoul

Si vous rencontrez cette erreur lors de la mise à niveau vers Rails 4.2.4 (également avec Rails 4.1.5)), essayez d’utiliser cette version de mysql2:

gem 'mysql2', '~> 0.3.18'

Apparemment, mysql2 n’est toujours pas compatible avec les versions plus récentes de Rails car Rails 4.2.4 est assez récent, le temps de répondre à cette question par moi 8 septembre 2015 utilisez donc la ligne ci-dessus dans votre fichier Gem et exécutez:

bundle install 

Vous devriez être bon pour aller

245
Hassan Azimi

Cela a fonctionné pour moi lorsque j'ai spécifié une version de mysql2 avant la plus récente (0.4.0). Pour une raison quelconque, il existe un problème avec Rails 4.2.4 et cette gem 0.4.0. Donc, pour résoudre le problème, je viens de spécifier la gem précédente publiée: 0.3.20 et cela fonctionnait bien pour moi!

gem 'mysql2', '~> 0.3.20'
bundle install

Vous pouvez vérifier toutes les versions de gemmes ici: https://rubygems.org/gems/mysql2/versions

27
romeromedeiros

Changer en

gem 'mysql2', '~> 0.3.18'

dans votre Gemfile.

Ce fil sur le mysql2 officiel Github dit de le faire. Vous devez déclarer ce numéro de version si vous êtes Rails version 4.x.x.

https://github.com/brianmario/mysql2/issues/675

Puis lancez bundle update mysql2.

16
suga_shane

J'ai eu la même erreur après une mise à jour vers Rails 4.1 et j'ai réussi à la résoudre en mettant à jour mysql2. Exécutez ceci dans votre dossier Rails app:

$ bundle update mysql2
8
valo

Ce problème peut se produire si vous utilisez une version plus récente de Rails> 4

Faites ces deux étapes simples, cela fonctionnera. Ouvrez votre Gemfile et trouvez la ligne ci-dessous

gem 'mysql2'

remplace cette ligne par une version spécifique de mysql comme ci-dessous

gem 'mysql2', '~> 0.3.18'

Maintenant, arrêtez le serveur et lancez bundle

bundle install

Maintenant, redémarrez votre serveur. Ça devrait marcher.

Rails s
8
Prabhakar

Étant débutant de la Ruby je ne pouvais pas comprendre la ligne bijou 'mysql2', '~> 0.3.18'

cela signifie simplement que vous allez aller dans votre dossier de projet Rails), puis il y aura une ligne pour mysql2, ce sera comme 0.4 * afin que vous puissiez le changer en gem 'mysql2', '~> 0.3 .18 '

et comme nous avons une nouvelle définition, nous devons reconstruire la dépendance afin de pouvoir exécuter cette commande simple comme expliqué ci-dessus installation groupée

7
Muaaz salagar

Il ne charge pas mysql2 gem car la nouvelle version de mysql2 (0.4.1) ne parvient pas à charger mysql2_adaptor. Cela fonctionne pour moi.

gem 'mysql2', '~> 0.3.13'

et courir

bundle install
5
sushilprj

J'ai eu la même erreur et cela est dû au fait que Rails 4.1 requiert une version minimale de mysql2 0.3.13, et la compatibilité maximale avec Windows est la version 0.3.11.

J'ai donc édité le fichier c:\RailsInstaller\Ruby1.9.3\lib\Ruby\gems\1.9.1\gems\activerecord-4.1.1\lib\active_record\connection_adapters\mysql2_adapter.rb et changé de ligne gem 'mysql2', '~> 0.3.13' à gem 'mysql2', '~> 0.3.11', et ça marche jusqu'à présent.

2
Lev Lukomsky

Voici comment j'ai corrigé ceci:

 bundle config
 bundle config --delete without
 bundle install --deployment --without development test postgres

Crédits: Comment annuler l’installation d’un ensemble --without

2
Ich

Il ne charge pas mysql2 gem car la nouvelle version de mysql2 (> = 0.4.0) ne parvient pas à charger mysql2_adaptor. Pouvez-vous essayer ceci?

gem 'mysql2', '~> 0.3.13'

Espérons que cela fonctionne.

1
Neeraj Kumar

Je suis un nouveau venu sur Ruby sur Rails et sur les sites Web, mais j'entends ce qui a fonctionné pour moi.

Je devais changer mon gemfile, gem 'mysql2' en gem 'mysql2', '~> 0.3.13' puis dans Rails j'ai installé l'installation groupée puis j'ai essayé Rails s et ai obtenu donc j'ai essayé de mettre à jour le paquet mysql2 puis dans Rails tapé Rails s, et cela a fonctionné

0
matt napper

J'ai résolu le problème, en installant le mysql2 gem local (gem install mysql2, bundle install) et en ajoutant la ligne suivante au fichier Gemfile:

gem 'mysql2'

Configuration de l'adaptateur mysql2 dans database.yml

adapter: mysql2

était aussi important!

0
atomiccoder