Gem :: LoadError per mysql2 gem, ma è già in Gemfile


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

Questo errore si è verificato durante il caricamento dei seguenti file:

active_record/base

Questo è l'errore che ottengo durante l'esecuzione del server rails.

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

Ho fatto bundle installe ho provato a riavviare il server ma ricevo ancora l'errore.


Hai eseguito bundledopo aver aggiunto la gemma e riavviato il server?
Bachan Smruty

@ BachanSmruty: Sì, l'ho fatto.
Mysoulisinseoul

È in distribuzione? Hai corsobundle install --deployment
j-dexx

Risposte:


247

Se riscontri questo errore durante l'aggiornamento a rails 4.2.4 (anche con rails 4.1.5) prova a utilizzare questa versione di mysql2:

gem 'mysql2', '~> 0.3.18'

Apparentemente mysql2 non è ancora compatibile con la versione più recente di rails perché rails 4.2.4 è abbastanza nuovo dato che ho risposto a questa domanda l'8 settembre 2015, quindi usa la riga sopra nel tuo file Gem ed esegui:

bundle install 

Dovresti essere a posto


2
nel msyql2_adapter.rb, trovo i codici seguenti: gem 'mysql2', '~> 0.3.13' richiedono 'mysql2' questo potrebbe essere il motivo per cui la versione predefinita di mysql2 4.xx non funzionerà
Oscar Jiang

27

Ha funzionato per me quando ho specificato una versione gem di mysql2 prima di quella più recente (0.4.0). Per qualche ragione c'è un problema con Rails 4.2.4 e quel gem 0.4.0. Quindi, per risolvere il problema ho appena specificato la gemma precedente rilasciata: 0.3.20 e ha funzionato bene per me!

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

Puoi controllare tutte le versioni delle gemme qui: https://rubygems.org/gems/mysql2/versions


16

Cambia in

gem 'mysql2', '~> 0.3.18'

nel tuo Gemfile.

Questo thread sul mysql2 ufficiale di Github dice di farlo. Devi dichiarare quel numero di versione se sei rails versione 4.xx

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

Allora corri bundle update mysql2.


2
Grazie! Per essere precisi, non vuoi bundle updateperché questo aggiornerà tutte le tue gemme. Il comando è bundle update mysql2. Potrebbe sembrare ovvio, ma è il comando sbagliato e potrebbe avere conseguenze impreviste. (Per tornare indietro bundle update, corri git checkout -- Gemfile.lock)
Nick l'

8

Ho ricevuto lo stesso errore dopo un aggiornamento a Rails 4.1 e sono riuscito a risolverlo aggiornando mysql2. Eseguilo nella cartella dell'app rails:

$ bundle update mysql2

8

Questo problema può verificarsi se stai utilizzando una versione più recente di rails> 4

Fai questi due semplici passaggi, funzionerà. Apri il tuo Gemfile e trova la riga sottostante

gem 'mysql2'

sostituire quella riga con una specifica versione di mysql come sotto

gem 'mysql2', '~> 0.3.18'

Ora ferma il server ed esegui bundle

bundle install

Ora riavvia il tuo server. Dovrebbe funzionare.

rails s

7

Essendo un principiante al rubino non sono riuscito a capire la linea gemma 'mysql2', '~> 0.3.18'

significa semplicemente andare nella cartella del progetto rails e poi c'è una riga per mysql2 che sarà come 0.4 * quindi puoi cambiarla in gem 'mysql2', '~> 0.3.18'

e poiché abbiamo una nuova definizione, dobbiamo ricostruire la dipendenza in modo da eseguire quel semplice comando come spiegato nell'installazione del bundle superiore


5

Non carica mysql2 gem perché la nuova versione di mysql2 (0.4.1) gem non è in grado di caricare mysql2_adaptor. Questo sta funzionando per me.

gem 'mysql2', '~> 0.3.13'

e corri

bundle install

2

Ho avuto lo stesso errore e questo perché Rails 4.1 richiede la versione minima di mysql2 0.3.13 e la massima compatibilità con Windows è la versione 0.3.11.

Quindi ho modificato il file c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\activerecord-4.1.1\lib\active_record\connection_adapters\mysql2_adapter.rbe cambiato la riga gem 'mysql2', '~> 0.3.13'in gem 'mysql2', '~> 0.3.11', e finora funziona.



1

Non carica mysql2 gem perché la nuova versione di mysql2 (> = 0.4.0) gem non è in grado di caricare mysql2_adaptor. Puoi provare questo?

gem 'mysql2', '~> 0.3.13'

Si spera che funzioni.


0

Ho risolto il problema, installando mysql2 gem local (gem install mysql2, bundle install) e aggiungendo la seguente riga al Gemfile:

gem 'mysql2'

Impostazione dell'adattatore mysql2 in database.yml

adapter: mysql2

era importante anche!


0

Sono nuovo di zecca su Ruby on Rails e sui siti web, ma sento cosa ha funzionato per me.

Ho dovuto cambiare il mio gemfile, gem 'mysql2' in gem 'mysql2', '~> 0.3.13' poi in rails ho digitato bundle install, poi ho provato rails se ho ricevuto errori, quindi ho provato l'aggiornamento bundle mysql2 poi in rails digitato rails s, e ha funzionato


0

Ho risolto il problema, installando libmysqlclient-dev. sudo aptitude installa libmysqlclient-dev e successivamente esegui bundle.


-1

In precedenza ho installato mysql2 0.4.5 ma questo mi dava questo errore, quindi ho installato un'altra versione di mysql2 da:

gem install mysql2 - versione 0.3.20

Spero che questo risolva il tuo problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.