복붙노트

[RUBY-ON-RAILS] 루비 레일에 - 같은 파일을로드 할 수 없습니다 - mysql2 / 2.2 / mysql2 (LoadError를)

RUBY-ON-RAILS

루비 레일에 - 같은 파일을로드 할 수 없습니다 - mysql2 / 2.2 / mysql2 (LoadError를)

내 레일 프로젝트에 SQLite는을 사용했지만 내가 Heroku가 SQLite는 지원하지 않음을 들었을 때, 나는 MYSQL로 전환.

내 데이터베이스를 전환 후, 나는 내 레일 서버가 "레일의는"하지만 나에게 다음과 같은 오류를 제공하기 시작 :

    C:\Sites\simple_cms>rails server
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql2-0.3.18-x64-mingw32/lib/mysql2/mysql2.rb:2:in `require'
: cannot load such file -- mysql2/2.2/mysql2 (LoadError)
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql2-0.3.18-x64-mingw32/lib/mysql2/mysql2.rb:2
:in `<top (required)>'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql2-0.3.18-x64-mingw32/lib/mysql2.rb:31:in `r
equire'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql2-0.3.18-x64-mingw32/lib/mysql2.rb:31:in `<
top (required)>'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.8.4/lib/bundler/runtime.rb:76:in `requ
ire'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.8.4/lib/bundler/runtime.rb:76:in `bloc
k (2 levels) in require'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.8.4/lib/bundler/runtime.rb:72:in `each
'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.8.4/lib/bundler/runtime.rb:72:in `bloc
k in require'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.8.4/lib/bundler/runtime.rb:61:in `each
'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.8.4/lib/bundler/runtime.rb:61:in `requ
ire'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/bundler-1.8.4/lib/bundler.rb:134:in `require'
        from C:/Sites/simple_cms/config/application.rb:7:in `<top (required)>'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks
.rb:78:in `require'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks
.rb:78:in `block in server'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks
.rb:75:in `tap'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks
.rb:75:in `server'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks
.rb:39:in `run_command!'
        from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-4.2.0/lib/rails/commands.rb:17:in `<top
 (required)>'
        from bin/rails:4:in `require'
        from bin/rails:4:in `<main>'

이것은 내 gemfile입니다 :

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.0'
# Use mysql as the database for Active Record
gem 'mysql2'

나는 철저하게 검색 어떤 해답을 발견했지만 작동하지 않았다.

루비 / 빈하지만 여전히 행운에 프로그램 파일 / MySQL 서버 5.6에서 내 libmysql.dll을 파일을 붙여 넣습니다. 나는 다음과 같은 명령을 수행 :

gem uninstall mysql2

gem install mysql2 --platform=ruby

오류 "- mysql2 / 2.0 / mysql2 (LoadError) ... 등의 파일을로드 할 수 없습니다": 저도 같은 오류가 발생했습니다 여전히이 튜토리얼을 따라. 루비 2.0.0와 윈도우 XP에서

누군가가 나를 도울 것입니다 만약 내가 Heroku가에 배포 할 수 있도록 내가보기 엔, 그것을 감사합니다.

감사.

해결법

  1. ==============================

    1.문제는 mysql2 보석은 기본 종속성 설치되지 않는 것입니다. 루비의 이전 버전이 기본 보석 확장 오류를 구축 할 수없는 트리거 것이다 :

    문제는 mysql2 보석은 기본 종속성 설치되지 않는 것입니다. 루비의 이전 버전이 기본 보석 확장 오류를 구축 할 수없는 트리거 것이다 :

    당신이 네이티브 확장을 구축하지 않고 보석을 설치할 수 있도록 뭔가 루비 2.2에서 변경되었습니다. 이 문제가 있지만 해결 의미하지 않는다 - 당신이 확인해야하므로 적절한 의존성과 보석을 설치합니다.

    지도 시간:

    설치 및 이전이 네이티브 보석 확장이 설치되는 것을 언급해야 될 것,이 차이는 루비 도서관에서 찾고 있음을 시사한다 (이 시간이 걸릴 수 있음).

    올바르게 설치하는 경우이 시간은 당신을 위해 작동합니다.

    --

    여전히 오류가 표시되는 경우, 당신은 당신의 시스템에 mysql2 보석의 기존 버전을 제거해야합니다 :

    당신이 오류가 발생하는 경우, 당신은 단지, unstally mysql2 보석을 입력 모두를 선택하고 위의 단계를 반복해야합니다.

  2. ==============================

    2.'-'및 경로의 주위에 따옴표 I 위의 3 단계에서의 추가 쌍을 사용했다.

    '-'및 경로의 주위에 따옴표 I 위의 3 단계에서의 추가 쌍을 사용했다.

    gem install mysql2 -- --with-mysql-dir=C:\mysql-connector-dir
    

    나는 승리를 사용하고 있습니다 (7)

  3. ==============================

    3.난 그냥 루비 2.1.5에서 2.2.1로 업데이트 한 후 그들에게 같은 문제가있어. 문제는 libmysql하는 바인딩으로 레일에 의해 사용 년대 mysql2 보석이 될 것으로 보인다. 분명히 그것은 루비 2.2 분기 만 2.0 및 2.1을 지원하지 않습니다.

    난 그냥 루비 2.1.5에서 2.2.1로 업데이트 한 후 그들에게 같은 문제가있어. 문제는 libmysql하는 바인딩으로 레일에 의해 사용 년대 mysql2 보석이 될 것으로 보인다. 분명히 그것은 루비 2.2 분기 만 2.0 및 2.1을 지원하지 않습니다.

  4. ==============================

    4.내가 RubyInstaller를 사용하여 전환 그래서 저도 같은 문제가 있었다. 나는 더 이상 문제가 없습니다.

    내가 RubyInstaller를 사용하여 전환 그래서 저도 같은 문제가 있었다. 나는 더 이상 문제가 없습니다.

  5. from https://stackoverflow.com/questions/28925628/ruby-on-rails-cannot-load-such-file-mysql2-2-2-mysql2-loaderror by cc-by-sa and MIT license