[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