mysql2 gem에 대한 Gem :: LoadError이지만 이미 Gemfile에 있습니다.


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

이 오류는 다음 파일을로드하는 동안 발생했습니다.

active_record/base

이것은 Rails 서버를 실행할 때 발생하는 오류입니다.

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

을 완료 bundle install하고 서버를 다시 시작했지만 여전히 오류가 발생합니다.


bundlegem을 추가 한 후 실행 하고 서버를 다시 시작 했습니까 ?
Bachan Smruty 2014

@BachanSmruty : 네, 그렇게했습니다.
Mysoulisinseoul

배포 중입니까? 뛰었습니까bundle install --deployment
j-dexx 2014

답변:


247

rails 4.2.4 (rails 4.1.5와 함께)로 업그레이드 할 때이 오류가 발생하면이 버전의 mysql2를 사용해보십시오.

gem 'mysql2', '~> 0.3.18'

분명히 mysql2는 최신 버전의 rails와 호환되지 않습니다. 왜냐하면 rails 4.2.4는 2015 년 9 월 8 일 제가이 질문에 답할 때 꽤 새로운 것이기 때문에 Gem 파일에서 위의 줄을 사용하고 실행하십시오.

bundle install 

당신은 잘해야합니다


2
msyql2_adapter.rb에서 아래 코드를 찾을 수 있습니다 : gem 'mysql2', '~> 0.3.13'require 'mysql2'이것이 기본 mysql2 버전 4.xx가 작동하지 않는 이유 일 수 있습니다
Oscar Jiang

27

최신 버전 (0.4.0) 이전에 mysql2 gem 버전을 지정했을 때 저에게 효과적이었습니다. 어떤 이유로 Rails 4.2.4와 그 gem 0.4.0에 문제가 있습니다. 그래서 문제를 해결하기 위해 방금 발표 된 이전 gem을 0.3.20으로 지정했는데 잘 작동했습니다!

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

여기에서 모든 gem 버전을 확인할 수 있습니다 : https://rubygems.org/gems/mysql2/versions


16

로 변경

gem 'mysql2', '~> 0.3.18'

Gemfile에서.

공식 mysql2 Github의이 스레드는이를 수행하도록 말합니다. Rails 버전 4.xx 인 경우 해당 버전 번호를 선언해야합니다.

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

그런 다음 bundle update mysql2.


2
감사합니다! 정확하게 말하면 bundle update모든 보석이 업데이트되므로 원하지 않습니다 . 명령은 bundle update mysql2입니다. 당연한 것처럼 보이지만 잘못된 명령이며 의도하지 않은 결과를 초래할 수 있습니다. (에서 되돌리려면을 bundle update실행하십시오. git checkout -- Gemfile.lock)
Nick

8

Rails 4.1로 업그레이드 한 후에도 동일한 오류가 발생했으며 mysql2를 업데이트하여 문제를 해결할 수있었습니다. rails 앱 폴더에서 이것을 실행하십시오.

$ bundle update mysql2

8

이 문제는 최신 버전의 rails> 4를 사용하는 경우 발생할 수 있습니다.

이 두 가지 간단한 단계를 수행하면 작동합니다. Gemfile을 열고 아래 줄을 찾으십시오.

gem 'mysql2'

해당 줄을 아래와 같은 특정 mysql 버전으로 바꿉니다.

gem 'mysql2', '~> 0.3.18'

이제 서버를 중지하고 번들을 실행하십시오.

bundle install

이제 서버를 다시 시작하십시오. 작동합니다.

rails s

7

루비 초보자이기 때문에 gem 'mysql2', '~> 0.3.18'라인을 알아낼 수 없었습니다.

그것은 단순히 rails 프로젝트 폴더로 이동하고 mysql2에 대한 줄이 있음을 의미합니다 .0.4 *와 같으므로 gem 'mysql2', '~> 0.3.18'로 변경할 수 있습니다.

새로운 정의가 있으므로 최상위 번들 설치 에 설명 된대로 간단한 명령을 수행하기 위해 종속성을 다시 빌드 해야합니다.


5

새 버전의 mysql2 (0.4.1) gem이 mysql2_adaptor를로드 할 수 없기 때문에 mysql2 gem을로드하지 않습니다. 이것은 나를 위해 일하고 있습니다.

gem 'mysql2', '~> 0.3.13'

그리고 실행

bundle install

2

동일한 오류가 발생했는데 Rails 4.1에는 최소 mysql2 버전 0.3.13이 필요하고 Windows와 호환되는 최대 버전은 0.3.11이기 때문입니다.

그래서 파일을 편집 c:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\gems\activerecord-4.1.1\lib\active_record\connection_adapters\mysql2_adapter.rb하고 줄 gem 'mysql2', '~> 0.3.13'을으로 변경 gem 'mysql2', '~> 0.3.11'했으며 지금까지 작동합니다.



1

새 버전의 mysql2 (> = 0.4.0) gem이 mysql2_adaptor를로드 할 수 없기 때문에 mysql2 gem을로드하지 않습니다. 이것을 시도해 볼 수 있습니까?

gem 'mysql2', '~> 0.3.13'

잘하면 작동합니다.


0

mysql2 gem local (gem install mysql2, bundle install)을 설치하고 Gemfile에 다음 줄을 추가하여 문제를 해결했습니다.

gem 'mysql2'

database.yml에서 mysql2 어댑터 설정

adapter: mysql2

또한 중요했습니다!


0

저는 Ruby on Rails와 웹 사이트를 처음 접하는 브랜드이지만 저에게 효과가있는 것을 들었습니다.

내 gemfile, gem 'mysql2'를 gem 'mysql2', '~> 0.3.13'으로 변경 한 다음 rails에서 bundle install을 입력 한 다음 rails s를 시도하고 오류가 발생하여 번들 업데이트 mysql2를 시도한 다음 rails에 입력했습니다. 레일 s 및 작동


0

libmysqlclient-dev를 설치하여 문제를 해결했습니다. sudo aptitude install libmysqlclient-dev 및 나중에 번들을 실행합니다.


-1

이전에 mysql2 0.4.5를 설치했지만이 오류가 발생하여 다음과 같은 방법으로 mysql2의 다른 버전을 설치했습니다.

gem install mysql2-버전 0.3.20

이것이 문제를 해결하기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.