programing

El Capitan 업그레이드: 라이브러리가 로드되지 않음: /usr/local/lib/libmysqlclient.18.dylib

abcjava 2023. 8. 29. 20:06
반응형

El Capitan 업그레이드: 라이브러리가 로드되지 않음: /usr/local/lib/libmysqlclient.18.dylib

오류:

/Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mysql2-0.3.20/lib/mysql2.rb:31:in `require': dlopen(/Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib (LoadError)
  Referenced from: /Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle
  Reason: image not found - /Users/askar/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-14/2.2.0-static/mysql2-0.3.20/mysql2/mysql2.bundle

Gemfile에서:gem 'mysql2'

ls -al /usr/local/lib/libmysql*

lrwxr-xr-x  1 askar  admin  49 Nov 13 10:48 /usr/local/lib/libmysqlclient.20.dylib -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.20.dylib
lrwxr-xr-x  1 askar  admin  42 Nov 13 10:48 /usr/local/lib/libmysqlclient.a -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.a
lrwxr-xr-x  1 askar  admin  46 Nov 13 10:48 /usr/local/lib/libmysqlclient.dylib -> ../Cellar/mysql/5.7.9/lib/libmysqlclient.dylib
lrwxr-xr-x  1 askar  admin  37 Nov 13 10:48 /usr/local/lib/libmysqld.a -> ../Cellar/mysql/5.7.9/lib/libmysqld.a
lrwxr-xr-x  1 askar  admin  44 Nov 13 10:48 /usr/local/lib/libmysqlservices.a -> ../Cellar/mysql/5.7.9/lib/libmysqlservices.a

ls -al /usr/local/Cellar/mysql/5.7.9/lib/

total 84392
drwxr-xr-x   9 askar  admin       306 Nov 12 22:16 .
drwxr-xr-x  14 askar  admin       476 Nov 13 10:48 ..
-r--r--r--   1 askar  admin   3780168 Nov 13 10:48 libmysqlclient.20.dylib
-r--r--r--   1 askar  admin   4280752 Nov 12 22:16 libmysqlclient.a
lrwxr-xr-x   1 askar  admin        23 Nov 12 22:16 libmysqlclient.dylib -> libmysqlclient.20.dylib
-r--r--r--   1 askar  admin  35126528 Nov 12 22:16 libmysqld.a
-r--r--r--   1 askar  admin      9048 Nov 12 22:16 libmysqlservices.a
drwxr-xr-x   3 askar  admin       102 Nov 13 10:48 pkgconfig
drwxr-xr-x  43 askar  admin      1462 Nov 12 22:17 plugin
drwxr-xr-x  43 askar  admin      1462 Nov 12 22:17 plugin

보다시피, 나는...libmysqlclient.20.dylib,그건…20것은 아니다.18그렇지 않았다면 여기서 해결책을 따랐을 겁니다.

나는 최근에 엘 캐피탄으로 업그레이드했지만 그것이 원인인지는 잘 모르겠어요.

업데이트:

@Rashmirathi에게 보석을 다시 설치할 수 있는 힌트를 주셔서 감사합니다.

참고로 Gemfile에 다음과 같이 지정해야 했습니다.

gem 'mysql2', '~> 0.3.18'

그렇지 않으면 오류가 발생했습니다.

데이터베이스 어댑터에 대해 'mysql2'을(를) 지정했지만 보석이 로드되지 않았습니다. 추가gem 'mysql2'Gem 파일로 이동합니다(ActiveRecord에서 요구하는 최소 버전인지 확인).

하지만 결국 오류가 발생했습니다.

Mysql2:: 오류
암호가 만료되었습니다.로그인하려면 만료된 암호를 지원하는 클라이언트를 사용하여 로그인을 변경해야 합니다.

이 문제는 암호를 다시 설정하면 해결됩니다.

SET PASSWORD=PASSWORD('your_password');

아까도 같은 문제가 발생했는데, 보석을 다시 설치해서 수정했습니다.mysql2.

이것은 당신의 문제를 해결할 것입니다:

gem pristine mysql2

세자르 술바란의 해결책

OS X El Capitain 또는 그 이상의 버전을 사용하는 사용자의 경우, 이것이 제 문제를 해결합니다.

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

자세한 내용은 https://stackoverflow.com/a/32875545/1066915 .

파이썬에서도 비슷한 문제가 있었습니다.libmysqlclient.20.dylib대신에18엘 캐피탄에서.pip install --upgrade mysql수정했지만 python2에서만 작동합니다.

저는 Homebrew를 사용하고 있기 때문에 모든 것을 단계적으로 정리하여 이 문제를 해결했습니다.

  1. 레일즈 앱 Gemfile에서 mysql2 보석에 대해 설명합니다.

    보석 'mysql2'"

  2. 번들에서 mysql2 gem 제거

    번들 설치

  3. mysql2 gem 제거(모든 버전)

    gem 제거 mysql2

  4. 홈브루 업데이트

    최신 정보를 제공

  5. mysql의 모든 버전 제거

    brew 제거 --force mysql

  6. mysql 다시 설치

    brew install mysql

  7. Gemfile에서 mysql2 gem 주석 달기

    gem mysql2

  8. mysql2를 번들에 추가합니다.

    번들 설치

이 접근법은 좀 지나칠 수도 있지만 제게는 깨끗하다고 느껴집니다.

여기서 차임벨을 울리고 싶습니다. 저는 방금 libmysqlclient.18.dylib 18-20의 차이에 대해 같은 문제를 가지고 있었습니다.재설치mysql보석(의 종속)activerecord-mysql-adapter)가 차이를 만들었습니다.재설치mysql2아무것도 하지 않았습니다.

명확하게 하기 위해 편집: 나의 오류 메시지는 mysql gem으로 거슬러 올라가지만, 나는 검색을 통해 이 스레드를 발견했기 때문에 여기에 포함합니다.

Please install the mysql adapter: `gem install activerecord-mysql-adapter` (dlopen(/Users/eriks/.rvm/gems/ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle, 9): 
Library not loaded: /usr/local/lib/libmysqlclient.18.dylib 
Referenced from: /Users/eriks/.rvm/gems/ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle
Reason: image not found - /Users/eriks/.rvm/gems/ruby-2.1.4/gems/mysql-2.9.1/lib/mysql/mysql_api.bundle) (LoadError)

언급URL : https://stackoverflow.com/questions/33772047/el-capitan-upgrade-library-not-loaded-usr-local-lib-libmysqlclient-18-dylib

반응형