내 gemfile에는 다음이 있습니다.
gem 'mysql2'
내 database.yml은 다음과 같습니다.
default: &default
adapter: mysql2
database: <%= ENV['db_name'] %>
username: <%= ENV['db_user'] %>
password: <%= ENV['db_pass'] %>
host: <%= ENV['db_host'] %>
pool: 32
socket: <%= ENV['socket'] %>
development:
<<: *default
production:
<<: *default
나는 모두를 실행했습니다 bundle update
및 bundle install
내 Gemfile.lock 쇼 mysql2.
그러나 실행할 때 rake db:migrate
내 컴퓨터와 준비 서버 모두에서이를 얻습니다.
myproject.com(master)$ rake db:migrate
WARNING: Use strings for Figaro configuration. 10000012508 was converted to "10000012508".
WARNING: Use strings for Figaro configuration. 860526407370038 was converted to "860526407370038".
rake aborted!
Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
.....
그냥 만들 수 있는지가, mysql2 또는 무언가의 나쁜 버전이 아니었다 나는하지 않았다 bundle clean --force
및 RAN bundle install
과 bundle update
다시 내가 실행할 때 gem list
내가 볼 mysql2 (0.4.0)
과 다른 버전.
어떤 아이디어라도 가장 감사하겠습니다.
해결책
현재이 버그 보고서에 따라 Rails 4.1.x 및 4.2.x의 문제입니다 . 다음 릴리스의 Rails 4.2.x (링크에 대한 주석에서 dcorr 로의 크레딧)에서 수정 될 것입니다.
그 동안 gemfile에 다음 줄을 추가하여 mysql2 버전 0.3.18로 다운 그레이드하여 수정할 수 있습니다.
gem 'mysql2', '~> 0.3.18'
답변
추가 업데이트 만하면 문제의 해결책이 정확합니다.
네 번째 의견은 다음 사항에 유의하십시오.
이 그것이 액티브 어댑터의 요구 사항에 문제가있어, mysql2와 버그가 아닙니다 http://github.com/rails/rails/issues/21544 . 레일 마스터에서 수정되었습니다 :
https://github.com/rails/rails/commit/5da5e3772c32593ecf2f27b8865e81dcbe3af692
나는 묶을 수 있었다 Rails 4.2.4
받는 4-2-stable
지점 및 최신 작업을 얻을 mysql2
:
gem 'rails', '~> 4.2.4', git: "git://github.com/rails/rails.git", branch: '4-2-stable'
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw] #-> Rails 4.1+
#DB
gem 'mysql2'
답변
그냥 해:
gem 'mysql2', '~> 0.3.18'
이 보석은 작동합니다 rails version 4.x.x
설치 gem 'mysql2', '~> 0.4.0'
하면 gem로드 오류가 발생하고 호환성 문제가 발생합니다
답변
이 문제는 여기에서 해결되었습니다 : https://github.com/brianmario/mysql2/issues/950
Rails 4.x의 경우 gem을 mysql2 ‘~> 0.4.0’에 고정하여 0.5.x 업그레이드를 피하십시오.
젬 파일 :
gem 'rails', '4.2.8'
gem 'mysql2', '~> 0.4.0'
그런 다음 실행 bundle update rails mysql2
현재 mysql v 8.0.11을 사용하고 있습니다.
답변
게시 된 날짜 및 사용중인 Rails 버전과 관련된이 특정 질문에 대한 답변은 문제가 bundle update
날짜 및 mysql2 버전이 0.4.x로 업데이트되어 최신 Rails ActiveRecord와 호환되지 않는 문제가 있다는 것입니다.
다시 말하지만, 이는 이전 버전의 Rails / ActiveRecord를 사용하는 사람들에게는 솔루션이 아닙니다.
빠른 해결책은 mysql2
다음과 같이 gemfile에 버전을 지정하는 것입니다.
gem 'mysql2', '0.3.20'
긴 해결책은 ActiveRecord에 대한 업데이트 또는 mysql2의 내용이 변경 될 때까지 기다리는 것입니다.
답변
레일스 버전을 업그레이드 할 수 있다면 Gemfile을 다음과 같이 변경하면 mysql2 gem 버전을 다운 그레이드하지 않고도 문제가 해결됩니다.
gem 'rails', '4.2.6'
답변
완전한 초보자로서 나는 이것을하는 방법에 대해 혼란스러워서 시험 점검을하고 마침내 내 서버를 작동 시켰습니다.
작업 디렉토리 파일 ( “work”)에 들어가서 mysql 2가 설치된 앱 ( “sample_app”) 파일에 들어갑니다. gem 파일 ( “Gemfile”)로 이동합니다. gem ‘mysql2’ 를 gem으로 편집 ‘mysql2’, ‘~> 0.3.18’
이제 cmd로 돌아가서 “bundle install”명령을 실행하십시오.
괄호 안의 파일을 고려하여 파일을 편집 할 디렉토리는이어야합니다. “c \ work \ sample_app \ Gemfile”
내가 도움이 되었기를 바랍니다.
답변
이것은 일반적으로 컴퓨터에 mysql 패키지가 없을 때 발생합니다. 에서 오류가 발생 gem install mysql2
합니까? 어떤 OS를 사용하고 있습니까?
데비안이나 우분투라면 sudo apt-get install libmysqlclient-dev
.
또한 gem이 group
Gemfile 의 명령문 안에 있지 않아야합니다.