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.