Gem :: LoadError dla mysql2 gem, ale jest już w Gemfile


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

Ten błąd wystąpił podczas ładowania następujących plików:

active_record/base

To jest błąd, który otrzymuję na uruchomionym serwerze railsowym.

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

Skończyłem bundle installi próbowałem zrestartować serwer, ale nadal pojawia się błąd.


Biegałeś bundlepo dodaniu klejnotu i zrestartowaniu serwera?
Bachan Smruty

@BachanSmruty: Tak, zrobiłem to.
Mysoulisinseoul

Czy to jest wdrażane? Czy uruchomićbundle install --deployment
j-dexx

Odpowiedzi:


247

Jeśli masz ten błąd podczas aktualizacji do rails 4.2.4 (także z rails 4.1.5), spróbuj użyć tej wersji mysql2:

gem 'mysql2', '~> 0.3.18'

Najwyraźniej mysql2 nadal nie jest kompatybilny z nowszą wersją railsów, ponieważ rails 4.2.4 są całkiem nowe jak na to pytanie 8 września 2015 r. Więc użyj powyższej linii w swoim pliku Gem i uruchom:

bundle install 

Powinieneś być gotowy do drogi


2
w msyql2_adapter.rb, znajdę kody poniżej: gem 'mysql2', '~> 0.3.13' require 'mysql2' To mightbe powód dlaczego wersja domyślna mysql2 4.xx nie zadziała
Oscar Jiang

27

U mnie zadziałało, gdy podałem wersję gem mysql2 przed najnowszą (0.4.0). Z jakiegoś powodu jest problem z Railsami 4.2.4 i tym gemem 0.4.0. Tak więc, aby rozwiązać problem, właśnie wskazałem poprzedni wydany klejnot: 0.3.20 i działał dobrze!

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

Możesz sprawdzić wszystkie wersje klejnotów tutaj: https://rubygems.org/gems/mysql2/versions


16

Zmień na

gem 'mysql2', '~> 0.3.18'

w twoim Gemfile.

Ten wątek na oficjalnym Github mysql2 mówi, żeby to zrobić. Musisz zadeklarować ten numer wersji, jeśli używasz railsów w wersji 4.xx

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

Następnie biegnij bundle update mysql2.


2
Dziękuję Ci! Mówiąc dokładniej, nie chcesz, bundle updateponieważ zaktualizuje to wszystkie twoje klejnoty. Polecenie jest bundle update mysql2. Może wydawać się oczywiste, ale jest to zła komenda i może mieć niezamierzone konsekwencje. (Aby powrócić bundle update, biegnij git checkout -- Gemfile.lock)
Nick

8

Otrzymałem ten sam błąd po aktualizacji do Rails 4.1 i udało mi się go rozwiązać, aktualizując mysql2. Uruchom to w folderze aplikacji railsów:

$ bundle update mysql2

8

Ten problem może wystąpić, jeśli używasz nowszej wersji szyn> 4

Wykonaj te dwa proste kroki, zadziała. Otwórz swój plik Gemfile i znajdź poniższą linię

gem 'mysql2'

zastąp tę linię konkretną wersją mysql, jak poniżej

gem 'mysql2', '~> 0.3.18'

Teraz zatrzymaj serwer i uruchom pakiet

bundle install

Teraz zrestartuj serwer. Powinno działać.

rails s

7

Będąc początkującym w Ruby nie mogłem znaleźć linii gem „mysql2”, „~> 0.3.18”

oznacza to po prostu, że przejdź do folderu projektu rails, a następnie pojawi się linia dla mysql2 o wartości 0.4 *, więc możesz ją zmienić na gem 'mysql2', '~> 0.3.18'

a ponieważ mamy nową definicję, musimy odbudować zależność, aby wykonać to proste polecenie, jak wyjaśniono w górnej instalacji pakietu


5

Nie ładuje gem mysql2, ponieważ nowa wersja gem mysql2 (0.4.1) nie może załadować mysql2_adaptor. To działa dla mnie.

gem 'mysql2', '~> 0.3.13'

i biegnij

bundle install

2

Miałem ten sam błąd, a to dlatego, że Rails 4.1 wymaga minimum mysql2 w wersji 0.3.13, a maksymalna kompatybilność z Windows to 0.3.11.

Więc wyedytowałem plik c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\activerecord-4.1.1\lib\active_record\connection_adapters\mysql2_adapter.rbi zmieniłem wiersz gem 'mysql2', '~> 0.3.13'na gem 'mysql2', '~> 0.3.11', i jak na razie działa.



1

Nie ładuje gem mysql2, ponieważ nowa wersja mysql2 (> = 0.4.0) gem nie może załadować mysql2_adaptor. Możesz tego spróbować?

gem 'mysql2', '~> 0.3.13'

Miejmy nadzieję, że to powinno działać.


0

Rozwiązałem problem, instalując lokalny plik mysql2 gem (instalacja gem mysql2, instalacja pakietu) i dodając następujący wiersz do pliku Gemfile:

gem 'mysql2'

Ustawienie adaptera mysql2 w database.yml

adapter: mysql2

był też ważny!


0

Jestem nowicjuszem w Ruby on Rails i stronach internetowych, ale słyszę, co zadziałało.

Musiałem zmienić mój gemfile, gem 'mysql2' na gem 'mysql2', '~> 0.3.13' potem w railsach wpisałem instalację pakietu, a następnie wypróbowałem railsy i otrzymałem błędy, więc spróbowałem zaktualizować pakiet mysql2, a następnie wpisano w railsach szyny i zadziałało


0

Rozwiązałem problem, instalując libmysqlclient-dev. sudo aptitude install libmysqlclient-dev, a później uruchom pakiet.


-1

Wcześniej zainstalowałem mysql2 0.4.5, ale to dawało mi ten błąd, więc zainstalowałem inną wersję mysql2 przez:

gem install mysql2 --version 0.3.20

Mam nadzieję, że to rozwiązuje twój problem.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.