복붙노트

[RUBY-ON-RAILS] 레일 + MySQL의 OSX에 : 라이브러리로드되지 : libmysqlclient.18.dylib를

RUBY-ON-RAILS

레일 + MySQL의 OSX에 : 라이브러리로드되지 : libmysqlclient.18.dylib를

난 그냥 루비 (난간) 함께 시작 해요. 나는 RVM을 사용하여, 보석에 http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:ruby 따라 설치를했다. 나는 모든 SQLite는 잘 작동합니다.

그게 내가 내 개발의 대부분을 무엇 때문에 지금은, MySQL을 넘어서 일을 변환하려고하고 싶습니다. 내 Gemfile에서 나는 mysql2와 sqlite가 대체했습니다 :

group :development, :test do
#  gem 'sqlite3', '1.3.5'
  gem 'mysql2'
  gem 'rspec-rails', '2.9.0'
end

하지만 MySQL의 I에서 레일에 대한 DB를 만들려고 할 때 얻을 :

$ rake db:create --trace
rake aborted!
dlopen(/Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
  Reason: image not found - /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle

나는 다른 게시물이 사제를 통해 다시 설치 MySQL이 (나의 다운로드 DMG를 통해 설치) 추천 본 적이 있지만 내가 어떻게해야하지 않으려는 것을 나는 이미 다른 비 루비 프로젝트가 여러 다른 데이터베이스를 가지고있다.

나는 사실 레일가 찾고있는 파일을 가지고에서 할; 그것은 /usr/local/mysql/lib/libmysqlclient.18.dylib에 설치되어. 방법을 찾으려면 레일을 이야기하는 가장 좋은 방법은 무엇입니까?

해결법

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

    1.이 솔루션은 매우 간단합니다; 당신은 ~ / .bash_profile이나 ~ / .profile 파일에 라이브러리 경로를 추가합니다 :

    이 솔루션은 매우 간단합니다; 당신은 ~ / .bash_profile이나 ~ / .profile 파일에 라이브러리 경로를 추가합니다 :

    MYSQL=/usr/local/mysql/bin
    export PATH=$PATH:$MYSQL
    export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
    

    아직도 (나를 위해이 일을) 작동하지 않는 경우 :

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

    내가 OSX 라이온에이기 때문에 나를 위해 작동하지 않습니다 install_name_tool 많은 블로그가있다 :

    sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/bin/indexer
    sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/bin/search
    
  2. ==============================

    2./usr/lib/libmysqlclient.18.dylib : 엘에 탄 나는 LN있어 조작이 허용되지 않습니다

    /usr/lib/libmysqlclient.18.dylib : 엘에 탄 나는 LN있어 조작이 허용되지 않습니다

    엘에서 캐피는 / usr / lib 디렉토리 / 이제 제한된 플래그가 난 그냥 대신 / usr / 지방 / lib 디렉토리에있는 링크를 넣을 수 있도록 보안을 해제하지 않고 쓸 수 없습니다.

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

    레일 서버는 다시 벌금을 실행 중입니다.

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

    3.이 질문의 제목은 정확하게 내가 직면 한 문제에 대해 설명하면서, 상황은 이전 답변에서 설명한 것과 다르다, 그래서 해결책이었다.

    이 질문의 제목은 정확하게 내가 직면 한 문제에 대해 설명하면서, 상황은 이전 답변에서 설명한 것과 다르다, 그래서 해결책이었다.

    내 경우 (엘 카피 탄, 사제를 통해 설치 MySQL은), 양조 업데이트 &&에서 (5.6.x)에서 5.7.10로 업그레이드 할 수있는 MySQL의 패키지를 발생 업그레이드 BREW.

    업그레이드 발생 libmysqlclient.18.dylib는 libmysqlclient.20.dylib로 대체 할,하지만 mysql2 보석은 여전히 ​​이전에 의존했다.

    보석 제거 mysql2 && 보석 mysql2를 설치 : 내가했던 문제를 해결하려면

    유사한 문제 (예를 들어,이에 대한 내 자신의 대답을 참조) 다른 사제 관리 라이브러리 발생할 수 있습니다

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

    4.

    sudo ln -s /usr/local/mysql-5.5.25-osx10.6-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
    

    그건 나를 위해 일했다. 나는 데미지 파일에서 MySQL을 설치.

  5. ==============================

    5.

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

    나를 위해 일했다. 모든 유사한 것들은하지 않았다.

  6. ==============================

    6.나는 완전한 제거 후이 문제에 실행하고 신선한 MySQL을 설치합니다. 구체적으로 특별히:

    나는 완전한 제거 후이 문제에 실행하고 신선한 MySQL을 설치합니다. 구체적으로 특별히:

    Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.20.dylib
    

    난 내 레일 응용 프로그램을 감동하지 않았다.

    mysql2 보석을 다시 설치하면이 문제를 해결했다.

    $ gem uninstall mysql2
    $ gem install mysql2 -v 0.3.18 # (specifying the version found in my Gemfile.lock)
    

    [5.7.10의 MySQL이 루비 2.0.0, 맥 OS X 요세미티 10.10, 레일 4.0.0]

  7. ==============================

    7.당신이 엘 캐피에 사제에서 설치 한 MySQL을 사용하는 경우 다음과 같이, 당신은 그것을 연결해야합니다 :

    당신이 엘 캐피에 사제에서 설치 한 MySQL을 사용하는 경우 다음과 같이, 당신은 그것을 연결해야합니다 :

    sudo ln -sf /usr/local/Cellar/mysql/5.6.27/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
    
  8. ==============================

    8.매버릭스에 DMG에서 설치 한 MySQL을 5.6의 경우

    매버릭스에 DMG에서 설치 한 MySQL을 5.6의 경우

    sudo ln -s /usr/local/mysql-5.6.14-osx10.7-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
    
  9. ==============================

    9.Abhishek에서 I의 확인 패치 작업을 수행합니다.

    Abhishek에서 I의 확인 패치 작업을 수행합니다.

    너무, 요세미티을 위해 작동합니다.

    노트: 대신 MySQL의 특정 버전에 연결의, 사실에 MySQL을 이미 구축 심볼릭 링크를 사용 :

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

    이 솔루션은 엑스 코드와 C API에 대한 작업을 수행합니다.

  10. ==============================

    10.양조를 사용하는 사람들을 위해. 그냥 당신에게 "--force"옵션 MySQL의 버전을 연결합니다.

    양조를 사용하는 사람들을 위해. 그냥 당신에게 "--force"옵션 MySQL의 버전을 연결합니다.

    brew link mysql56 --force
    
  11. ==============================

    11.심볼릭 링크가 필요 있는지 무엇을 할 (MySQL 버전 및 OS 버전에 따라 다릅니다)

    심볼릭 링크가 필요 있는지 무엇을 할 (MySQL 버전 및 OS 버전에 따라 다릅니다)

    $ locate libmysqlclient.18.dylib
    /usr/local/mysql-5.6.24-osx10.8-x86_64/lib/libmysqlclient.18.dylib
    

    그래서 :

    ln -s /usr/local/mysql-5.6.24-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
    
  12. ==============================

    12.이것은 나를 위해 작동합니다 :

    이것은 나를 위해 작동합니다 :

    ln -s /usr/local/Cellar/mysql/5.6.22/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
    
  13. ==============================

    13.나는 우리가 레거시 시스템에 대한 레일 REE (2.3.4)를 사용하고 있습니다. 엘 캐피로 업그레이드 한 후 실행 스크립트 / 콘솔에 오류가 enerated 내 응용 프로그램은 더 이상 (펑를 사용하여)를 시작하지 않을 것이다 :

    나는 우리가 레거시 시스템에 대한 레일 REE (2.3.4)를 사용하고 있습니다. 엘 캐피로 업그레이드 한 후 실행 스크립트 / 콘솔에 오류가 enerated 내 응용 프로그램은 더 이상 (펑를 사용하여)를 시작하지 않을 것이다 :

    $ script/console
    Loading development environment (Rails 2.3.4)
    /blah-blah/gems/activerecord-2.3.4/lib/active_record/connection_adapters/abstract/connection_specification.rb:76:in establish_connection:RuntimeError: Please install the mysql2 adapter: gem install activerecord-mysql2-adapter (dlopen(/blah-blah/gems/mysql2-0.2.19b4/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
      Referenced from: /blah-blah/gems/mysql2-0.2.19b4/lib/mysql2/mysql2.bundle
      Reason: image not found - /blah-blah/gems/mysql2-0.2.19b4/lib/mysql2/mysql2.bundle)
    

    생산 sudo를 에선 -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib이 명령이 매우 스레드에서, 위, 내가 터미널에서이 명령을 실행하기 위해 필요한 것으로 결정 오류 : "LN : /usr/lib/libmysqlclient.18.dylib : 작업이 허용되지 않습니다." 내가 전에 그 오류를 본 적이 없다.

    파고의 꽤 후, 나는이 문서 발견 http://www.macworld.com/article/2986118/security/how-to-modify-system-integrity-protection-in-el-capitan.html을하고 따라 지침은 SIP (엘 캐피 탄의 새로운 시스템 무결성 보호)을 끕니다. 해제 및 재부팅 한 후 SIP를 켠 후, ln 명령은 벌금을했다. 그럼 오프 SIP 돌았 다. 이제 모두 괜찮습니다. 내 응용 프로그램 실행을 다시 펑를 사용하여 오류 스크립트 / 콘솔을 실행하지 않습니다. 나는 이것이 당신이 도움이되기를 바랍니다.

  14. ==============================

    14.맥 시에라에 할 다음 브루 사용하는 경우 :

    맥 시에라에 할 다음 브루 사용하는 경우 :

    sudo ln -s /usr/local/Cellar/mysql@5.6/5.6.34/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
    
  15. ==============================

    15.

    gem uninstall -aIx
    

    bundle install
    

    날 위해 일했습니다.

  16. ==============================

    16.이것은 나를 위해 일했다. 모든 나는 제거 mysql2 보석이 수행하고 다시 명령 아래를 사용하여 설치했다

    이것은 나를 위해 일했다. 모든 나는 제거 mysql2 보석이 수행하고 다시 명령 아래를 사용하여 설치했다

    gem uninstall mysql2
    gem install mysql2 -v '0.3.18' -- --with-mysql-config=/usr/local/Cellar/mysql@5.7/5.7.28/bin/mysql_config
    
  17. ==============================

    17.명령 줄에서 이것을 사용 :

    명령 줄에서 이것을 사용 :

    sudo install_name_tool -id /usr/local/mysql-connector-c-6.1.3-osx10.7-x86_64/lib/libmysqlclient.18.dylib /usr/local/mysql-connector-c-6.1.3-osx10.7-x86_64/lib/libmysqlclient.18.dylib
    

    코디가 항상 작동과 fews 컴퓨터에서 시도

  18. ==============================

    18.당신은 Bitnami RubyStack를 사용하고 비슷한 문제를 통해 실행하는 경우. 이걸로 해봐

    당신은 Bitnami RubyStack를 사용하고 비슷한 문제를 통해 실행하는 경우. 이걸로 해봐

    sudo ln -s /Applications/rubystack-2.0.0-17/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
    
  19. ==============================

    19.해당 번들 파일의 로딩 내 문제는 나쁜 심볼릭 링크이었다. 그래서 링크를 확인하고, 필요한 경우 새로운 것으로 교체. 모든 것은 그 시점에서 장소로 떨어졌다. 그 일이,하지만하지 않았다 확인 방법에 대해 설명합니다. 구문 오류는 그런 일이 첫 번째 시간입니다.

    해당 번들 파일의 로딩 내 문제는 나쁜 심볼릭 링크이었다. 그래서 링크를 확인하고, 필요한 경우 새로운 것으로 교체. 모든 것은 그 시점에서 장소로 떨어졌다. 그 일이,하지만하지 않았다 확인 방법에 대해 설명합니다. 구문 오류는 그런 일이 첫 번째 시간입니다.

  20. ==============================

    20.나는 레일 g 모델 명령으로 작업을하고 있었고, 난이 오류가 발생했습니다 :

    나는 레일 g 모델 명령으로 작업을하고 있었고, 난이 오류가 발생했습니다 :

    Library not loaded: libmysqlclient.18.dylib
    

    나는이 시도하고 나를 위해 작용했다. 나는 매버릭스 10.9.5를 사용하고 있었다

    sudo ln -s /usr/local/mysql-5.6.19-osx10.7-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
    

    감사!

    지금은 요세미티 10.10.5을 사용하고 있는데 난 그냥이 성공적으로 고정 터미널 온이 명령을 실행 그래서 나는 같은 오류가 발생했습니다.

    $ sudo ln -s /usr/local/mysql-5.6.26-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
    

    또한 당신은 시도 할 수 있습니다 :

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

    둘 다 나를 위해 잘 작동합니다. 이 유용 할 수 희망!

  21. ==============================

    21.python3를 들어 MySQL의에서 MySQLdb를 가져올 때 : 나는 "libmysqlclient.18.dylib 도서관이로드되지"이 문제를 가지고 :

    python3를 들어 MySQL의에서 MySQLdb를 가져올 때 : 나는 "libmysqlclient.18.dylib 도서관이로드되지"이 문제를 가지고 :

        Traceback (most recent call last):
      File "test.py", line 3, in <module>
        import MySQLdb
      File "/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/MySQL_python-1.2.4-py3.5-macosx-10.11-x86_64.egg/MySQLdb/__init__.py", line 19, in <module>
        import _mysql
    ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/MySQL_python-1.2.4-py3.5-macosx-10.11-x86_64.egg/_mysql.cpython-35m-darwin.so, 2): Library not loaded: libmysqlclient.18.dylib
      Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/MySQL_python-1.2.4-py3.5-macosx-10.11-x86_64.egg/_mysql.cpython-35m-darwin.so
      Reason: image not found
    

    솔루션은 나를 위해 작동합니다 : 맥 OS X 10.11.1 Python3.5

    Edit ~/.bash_profile:
    export PATH="/opt/local/Library/Frameworks/Python.framework/Versions/3.5/bin:$PATH"
    export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
    export PATH="/usr/local/mysql/bin:$PATH"
    export PATH="/usr/local/mysql/lib:$PATH"
    sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
    
  22. ==============================

    22.나를 위해 일한 유일한 방법은 다음과 같습니다

    나를 위해 일한 유일한 방법은 다음과 같습니다

    sudo install_name_tool -change libmysqlclient.18.dylib \
    /usr/local/mysql-5.6.23-osx10.8-x86_64/lib/libmysqlclient.18.dylib \
    /Library/Ruby/Gems/2.0.0/gems/mysql2-0.4.3/lib/mysql2/mysql2.bundle
    

    시스템에 맞게 MySQL을의 경로와 보석을 교체합니다.

  23. ==============================

    23.인터넷 검색 및 위 ... 내 문제를 해결하는 유일한 것은 모든 시도를 많이 한 후이 명령했다 :

    인터넷 검색 및 위 ... 내 문제를 해결하는 유일한 것은 모든 시도를 많이 한 후이 명령했다 :

    $install_name_tool -id /usr/local/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
    

    나는 맥북 프로, OSX (10) 엘 카피 탄 사용하고 있습니다. 다윈 XXXX - 맥북 - Pro.local 15.6.0 다윈 커널 버전 15.6.0 : 목 6월 23일 태평양 서머 타임 18시 25분 34초 2016; XXX : XNU - 3248.60.10 ~ 1 / RELEASE_X86_64의 x86_64의 펄 : v5.18.2 MySQL의 : 5.6.19

  24. ==============================

    24.나는 맥 OS를 사용하고, 그리고 난 / 제거 모든 MySQL과 MAMP를 제거한 후이 버그 붙어 있었다. 이전, 내가 MySQL을 설치 BREW 설치하고 또한 MAMP를 사용했다. 소프트 링크를 addling 것은 나를 위해 작동하지 않았다.

    나는 맥 OS를 사용하고, 그리고 난 / 제거 모든 MySQL과 MAMP를 제거한 후이 버그 붙어 있었다. 이전, 내가 MySQL을 설치 BREW 설치하고 또한 MAMP를 사용했다. 소프트 링크를 addling 것은 나를 위해 작동하지 않았다.

    그것은 단지 기존의 MySQL을 제거하여 해결되었습니다. 다음 여기에서 MySQL을 통해 MySQL을 설치.

  25. ==============================

    25.감사. 사제 업그레이드 내 레일 애플 리케이션 내 Mac에서 문제가 발생했다. 그때 나는 이렇게했다, 소스에서 MySQL의 (5.7)을 다시 설치

    감사. 사제 업그레이드 내 레일 애플 리케이션 내 Mac에서 문제가 발생했다. 그때 나는 이렇게했다, 소스에서 MySQL의 (5.7)을 다시 설치

    sudo ln -s /usr/local/mysql-5.7.28-macos10.14-x86_64/lib/libmysqlclient.20.dylib /usr/lib/libmysqlclient.20bdylib
    

    내가 위에서 읽은 것을 기반으로, 내 Gemfile에

    gem 'mysql2', '0.5.3'
    

    및 database.yml을의

    adapter: mysql2
    
  26. from https://stackoverflow.com/questions/10557507/rails-mysql-on-osx-library-not-loaded-libmysqlclient-18-dylib by cc-by-sa and MIT license