[mysql] 라이브러리가로드되지 않음 : mysql2 gem을 사용하여 OS X 10.6에서 ‘rails server’를 실행하려고 할 때 libmysqlclient.16.dylib 오류

나는 한동안 이것으로 어려움을 겪고있다.

Snow Leopard 시스템에 Rails 3, gem, mysql을 설치했습니다. 첫 번째 프로젝트를 만들고 실행하려고 할 때까지 모든 것이 잘 진행되었습니다.

rails server

이것을 실행하면 다음을 얻습니다.

jontybrook$ rails server
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib (LoadError)
  Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
  Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
    from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2.rb:7
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler.rb:112:in `require'
    from /Users/jontybrook/Dropbox/CODING/simple_cms/config/application.rb:7
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28:in `require'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27
    from script/rails:6:in `require'
    from script/rails:6
jontybrook$ 

내가 알 수있는 한 mysql2 gem에 문제가 있습니다. MySQL이 정상적으로 실행되는 것 같고 Gemfile이 mysql2를 참조하고 database.yml 파일도 정상적으로 보입니다.

오류 언급

Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

그리고 아직

jontybrook$ cd /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2
jontybrook$ ls
client.rb   em.rb       error.rb      mysql2.bundle result.rb

MySQL2. 번들이 있습니까!?

오래된 mysql gem을 사용하면 WEBrick이 정상적으로 부팅됩니다. 그러나 이상적이지 않습니까?

나는 구글이 줄 수있는 모든 것을 시도했다! 도움을 주시면 감사하겠습니다.



답변

나는이 답변 중 어느 것도 나를 위해 일할 수 없었지만, 이것이 나를 위해 일하는 데 사용한 명령입니다. 이렇게하면 mysql을 업데이트 할 때마다 install_name_tool을 사용할 필요가 없습니다.

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib


답변

나는 이것을 결국 해결했다!

RVM에서 Ruby and Rails를 다시 설치했습니다. Ruby 버전 1.9.2-p136을 사용하고 있습니다.

rvm에서 다시 설치 한 후에도이 오류가 계속 발생했습니다.

결국 그것을 해결 한 마술 명령은 다음과 같습니다.

sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

이것이 다른 누군가를 돕기를 바랍니다!


답변

이 수정 프로그램은 저에게 매우 효과적이었습니다.

~ / .profile에 다음을 추가하십시오.

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/


답변

나를 위해 이것은 단지 mysql을 업그레이드했지만 mysql2 gem을 업데이트하지 않았기 때문입니다-gem을 다시 설치하면 문제가 해결됩니다 …

gem pristine mysql2


답변

나는 같은 문제가 있습니다. libmysqlclient 라이브러리를 찾을 수없는 것 같습니다. 나를 위해 일한 임시 수정 사항은 다음과 같습니다.

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/

구성이로드 경로를 지정하는 위치 또는 설정된 경로를 확실하지 않지만 mysql 설치가 그 경로에없는 것처럼 보입니다. 더 영구적 인 해결책을 찾으면 다시 게시하겠습니다.

편집 : 사실 수정보다 정확하게 문제를 해결하기 위해 나타납니다.


답변

에 아래를 추가하십시오 ~/.bash_profile:

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

이것은 나를 위해 일했다


답변

이 작업을 수행 할 때 OSX El Capitan 업데이트에서 :

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

그것은 같은 오류를 던진다

ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted

이를 피하기 위해 먼저 libmysqlclient.18.dylib명령을 사용하여 찾을 수 있습니다.

User$ locate libmysqlclient.18.dylib

내 경우에는 돌아왔다 /usr/local/mysql-5.5.24-osx10.5-x86_64/lib/libmysqlclient.18.dylib

따라서 대신에 usr/lib/다음 usr/local/lib/과 같은 심볼릭 링크를 만들 것입니다 .

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib

자세한 내용은 https://forums.developer.apple.com/thread/7935