Gem:: LoadError pour mysql2 gem, mais il 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'obtiens en tournant le serveur rails.

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 l'erreur persiste.

104
demandé sur onebree 2014-04-08 13:00:15

13 réponses

si vous avez cette erreur lors de la mise à niveau vers rails 4.2.4 (aussi avec rails 4.1.5) essayez d'utiliser cette version de mysql2:

gem 'mysql2', '~> 0.3.18'

apparemment mysql2 n'est pas encore compatible avec la nouvelle version de rails parce que les rails 4.2.4 est assez nouveau que le temps de répondre à cette question par moi 8 Septembre 2015 alors utilisez la ligne ci-dessus dans votre fichier Gem et exécuter:

bundle install 

Vous devriez être bon d'aller

245
répondu Hassan Azimi 2015-09-22 22:30:33

cela a fonctionné pour moi quand j'ai spécifié une version gem mysql2 avant la plus récente (0.4.0). Pour une raison quelconque, Il ya un problème avec les Rails 4.2.4 et que gem 0.4.0. Donc, pour résoudre le problème je viens de spécifier la gemme précédente sortie: 0.3.20 et il a fonctionné très 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
répondu romeromedeiros 2015-09-16 10:32:37

changer à

gem 'mysql2', '~> 0.3.18'

dans votre Gemfile.

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

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

, puis bundle update mysql2 .

16
répondu suga_shane 2018-05-22 16:54:46

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

$ bundle update mysql2
8
répondu valo 2014-04-12 22:04:16

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

faites ces deux simples étapes, ça va marcher. Ouvrez votre Gemfile et trouvez la ligne ci-dessous

gem 'mysql2'

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

gem 'mysql2', '~> 0.3.18'

maintenant arrêtez le serveur et lancez bundle

bundle install

redémarrez maintenant votre serveur. Il devrait fonctionner.

rails s
8
répondu Prabhakar 2015-12-21 10:59:53

étant débutant au ruby Je ne pouvais pas comprendre la ligne gem 'mysql2',' ~ > 0.3.18 '

cela signifie simplement aller à votre dossier de projet rails et puis il ya ligne pour mysql2 il sera comme 0.4* de sorte que vous pouvez le changer gem 'mysql2', '~> 0.3.18'

et comme nous avons une nouvelle définition, nous devons reconstruire la dépendance afin de faire cette commande simple comme expliqué en haut bundle install

7
répondu Muaaz salagar 2015-10-28 01:33:51

il ne charge pas mysql2 gem parce que la nouvelle version de mysql2(0.4.1) gem incapable de charger le mysql2_adaptor. C'est de travailler pour moi.

gem 'mysql2', '~> 0.3.13'

et courir

bundle install
5
répondu sushilprj 2015-09-28 11:54:52

j'ai eu la même erreur et c'est parce que Rails 4.1 exige minimum mysql2 version 0.3.13, et maximum compatible avec Windows est version 0.3.11.

alors j'ai édité le fichier c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems.9.1\gems\activerecord-4.1.1\lib\active_record\connection_adapters\mysql2_adapter.rb et j'ai changé la ligne gem 'mysql2', '~> 0.3.13' en gem 'mysql2', '~> 0.3.11' , et cela fonctionne jusqu'à présent.

2
répondu Lev Lukomsky 2014-05-08 14:57:20

Voici comment j'ai corrigé cela:

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

crédits: Comment faire pour annuler bundle install --sans

2
répondu Ich 2017-05-23 12:26:26

il ne charge pas mysql2 gem parce que la nouvelle version de mysql2 (>= 0.4.0) gem incapable de charger le mysql2_adaptor. Pouvez-vous essayer?

gem 'mysql2', '~> 0.3.13'

avec un peu de chance, ça devrait marcher.

1
répondu Neeraj Kumar 2015-11-05 17:54:10

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

gem 'mysql2'

paramétrage de l'adaptateur mysql2 dans la base de données.yml

adapter: mysql2

était aussi important!

0
répondu atomiccoder 2014-08-24 21:08:01

je donne une fessée neuve à Ruby sur les Rails et les sites Web mais j'entends ce qui a fonctionné pour moi.

j'ai dû changer mon gemfile, gem 'mysql2' gem 'mysql2', '~> 0.3.13' puis dans les rails j'ai tapé bundle installer puis j'ai essayé les rails et j'ai eu des erreurs alors j'ai essayé de mettre à jour mysql2 puis dans les rails tapé des rails s, et il a fonctionné

0
répondu matt napper 2016-02-22 20:53:40

j'ai déjà installé mysql2 0.4.5 mais qui me donnait cette erreur donc j'ai installé une autre version de mysql2 par:

gem install mysql2 --version 0.3.20

J'espère que ça résoudra votre problème.

-1
répondu Prashant Choudhary 2017-05-03 12:35:06