Gem :: mysql2 gem için LoadError hatası, ancak zaten Gemfile'da


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

Bu hata, aşağıdaki dosyalar yüklenirken meydana geldi:

active_record/base

Rails sunucusunu çalıştırırken aldığım hata bu.

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

Yaptığım bundle installve sunucuyu yeniden başlatmadan çalıştı ama yine de hata alıyorum.


Gem'i bundleekledikten ve sunucuyu yeniden başlattıktan sonra çalıştırdınız mı?
Bachan Smruty

@BachanSmruty: Evet bunu yaptım.
Mysoulisinseoul

Bu dağıtımda mı? bundle install --deployment
Koştun

Yanıtlar:


247

Raylar 4.2.4'e (ayrıca 4.1.5 rayları ile) yükseltirken bu hatayı yaşıyorsanız, mysql2'nin bu sürümünü kullanmayı deneyin:

gem 'mysql2', '~> 0.3.18'

Görünüşe göre mysql2, rayların daha yeni sürümleriyle hala uyumlu değil çünkü raylar 4.2.4, bu soruyu 8 Eylül 2015'te yanıtlama zamanı olarak oldukça yenidir, bu nedenle Gem dosyanızda yukarıdaki satırı kullanın ve çalıştırın:

bundle install 

Gitmek için iyi olmalısın


2
msyql2_adapter.rb içinde, aşağıdaki kodları buluyorum: gem 'mysql2', '~> 0.3.13' gerekli 'mysql2' bu, varsayılan mysql2 sürüm 4.xx'in çalışmamasının nedeni olabilir
Oscar Jiang

27

En yenisinden (0.4.0) önce bir mysql2 gem sürümünü belirttiğimde benim için çalıştı. Bazı nedenlerden dolayı Rails 4.2.4 ve bu taş 0.4.0 ile ilgili bir sorun var. Bu yüzden sorunu çözmek için bir önceki geminin piyasaya sürüldüğünü belirttim: 0.3.20 ve benim için iyi çalıştı!

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

Tüm mücevher sürümlerini buradan kontrol edebilirsiniz: https://rubygems.org/gems/mysql2/versions


16

Değişmek

gem 'mysql2', '~> 0.3.18'

Gemfile'nizde.

Resmi mysql2 Github'daki bu ileti dizisi bunu yapmayı söylüyor. 4.xx rails sürümüyseniz, bu sürüm numarasını beyan etmeniz gerekir.

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

Sonra koş bundle update mysql2.


2
Teşekkür ederim! Kesin olmak gerekirse, bundle updatebu tüm mücevherlerinizi güncelleyeceği için istemezsiniz . Komut şudur bundle update mysql2. Açık görünebilir, ancak bu yanlış bir komuttur ve istenmeyen sonuçları olabilir. (Geri dönmek için bundle updatekoş git checkout -- Gemfile.lock)
Nick

8

Rails 4.1'e yükselttikten sonra aynı hatayı aldım ve mysql2'yi güncelleyerek çözmeyi başardım. Bunu rails uygulama klasörünüzde çalıştırın:

$ bundle update mysql2

8

Rayların daha yeni bir sürümünü kullanıyorsanız bu sorun oluşabilir> 4

Bu iki basit adımı uygulayın, işe yarayacaktır. Gemfile'ınızı açın ve aşağıdaki satırı bulun

gem 'mysql2'

bu satırı aşağıdaki gibi belirli bir mysql sürümüyle değiştirin

gem 'mysql2', '~> 0.3.18'

Şimdi sunucuyu durdurun ve paketi çalıştırın

bundle install

Şimdi sunucunuzu yeniden başlatın. İşe yaramalı.

rails s

7

Yakutun Başlangıç ​​Seviyesi Gem 'mysql2', '~> 0.3.18' satırını anlayamadım

bu sadece rails proje klasörünüze gidin ve sonra mysql2 için bir satır var, 0.4 * gibi olacak, böylece onu gem 'mysql2', '~> 0.3.18' olarak değiştirebilirsiniz

ve yeni tanımımız olduğu için, bu basit komutu üst paket kurulumunda açıklandığı gibi yapmak için bağımlılığı yeniden oluşturmalıyız


5

Mysql2 gem'in yeni sürümü (0.4.1) gem mysql2_adaptor'ı yükleyemediği için mysql2 gem'i yüklemiyor. Bu benim için çalışıyor.

gem 'mysql2', '~> 0.3.13'

ve koş

bundle install

2

Aynı hatayı aldım ve bunun nedeni Rails 4.1'in minimum mysql2 sürüm 0.3.13 gerektirmesi ve Windows ile maksimum uyumlu sürümün 0.3.11 olmasıdır.

Bu yüzden dosyayı düzenledim c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\activerecord-4.1.1\lib\active_record\connection_adapters\mysql2_adapter.rbve satırı gem 'mysql2', '~> 0.3.13'olarak değiştirdim gem 'mysql2', '~> 0.3.11've şimdiye kadar çalışıyor.



1

Mysql2 gem'in yeni sürümü mysql2 (> = 0.4.0) gem'in mysql2_adaptor'ı yükleyemediği için yüklenmez. Bunu deneyebilir misin?

gem 'mysql2', '~> 0.3.13'

Umarım işe yaramalıdır.


0

Sorunu çözdüm, mysql2 gem local'i kurdum (gem install mysql2, bundle install) ve Gemfile'a aşağıdaki satırı ekledim:

gem 'mysql2'

Database.yml içinde mysql2 adaptörünü ayarlama

adapter: mysql2

da önemliydi!


0

Ruby on Rails'e ve web sitelerine yeni bir marka atıyorum ama benim için neyin işe yaradığını duyuyorum.

Gemfile, gem 'mysql2' yi gem 'mysql2', '~> 0.3.13' olarak değiştirmek zorunda kaldım, sonra raylarda paket yüklemesini yazdım, sonra rayları denedim ve hatalar aldım, sonra mysql2 paket güncellemesini denedim ve ardından yazılan raylarda raylar ve işe yaradı


0

Libmysqlclient-dev'i yükleyerek sorunu çözdüm. sudo aptitude libmysqlclient-dev'i kurun ve daha sonra paketi çalıştırın.


-1

Daha önce mysql2 0.4.5'i kurdum ama bu bana bu hatayı veriyordu, bu yüzden mysql2'nin başka bir sürümünü şu şekilde yükledim:

gem yüklemek mysql2 - sürüm 0.3.20

Umarız bu sorununuzu çözer.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.