programing

Mac OSX 10.6으로 Ruby용 mysql2 gem 설치

newstyles 2023. 9. 26. 22:04

Mac OSX 10.6으로 Ruby용 mysql2 gem 설치

mysql2 gem을 설치하는 데 문제가 있습니다.

할 때 이런 얘기가 나와요.gem install mysql2:

Marks-MacBook-Pro:~ Mark$ gem install mysql2
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

/Users/useruser/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/useruser/.rvm/rubies/ruby-1.9.2-p136/bin/ruby
    --with-mysql-config
    --without-mysql-config
    --with-mysql-dir
    --without-mysql-dir
    --with-mysql-include
    --without-mysql-include=${mysql-dir}/include
    --with-mysql-lib
    --without-mysql-lib=${mysql-dir}/lib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mlib
    --without-mlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-zlib
    --without-zlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-socketlib
    --without-socketlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-nsllib
    --without-nsllib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mygcclib
    --without-mygcclib
    --with-mysqlclientlib
    --without-mysqlclientlib


Gem files will remain installed in /Users/useruser/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6 for inspection.
Results logged to /Users/useruser/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/ext/mysql2/gem_make.out

사용할 때도rails server다음과 같이 나옵니다.

Could not find gem 'mysql2 (>= 0, runtime)' in any of the gem sources listed in your Gemfile.

MySQL 라이브러리를 찾을 수 없는 것 같습니다.MySQL을 설치했습니까?
홈브루를 통해 설치해 보십시오.

brew install mysql

또는 맥포트나 핑크를 통해 설치할 수도 있고 원하는 대로 설치할 수도 있습니다.

그런 다음 다시 시도해 보십시오.

gem install mysql2

이 명령은 나에게 효과가 있었습니다.

gem install mysql2 -- --srcdir=/usr/local/mysql/include

다음 명령이 성공적으로 작동했습니다.

x.x.x = 설치할 mysql2 버전입니다.

gem install mysql2 -v 'x.x.x' -- --srcdir=/usr/local/mysql/include

Mac OS X에서는 MySQL이 필요 없습니다. 왜냐하면 Vagrant 박스에 MySQL이 설치되어 있기 때문입니다.그래서 방금 mysql-connector-c를 설치했습니다.

brew install mysql-connector-c
gem install mysql2

수동 보석 설치를 수정하려면:

brew install openssl
gem install mysql2 -- --with-opt-dir="$(brew --prefix openssl)"

모든 번들 설치에 대한 수정하기

brew install openssl
bundle config --global build.mysql2 --with-opt-dir="$(brew --prefix openssl)"
bundle install

다음이 저에게 효과가 있었습니다.

brew install mysql 
brew install mysql-connector-c
gem install mysql2

만약 홈브루를 사용해서 mysql을 설치했다면,brew install mysql, 이것은 나에게 효과가 있었습니다:

gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config

x.x.x = 설치할 mysql2 gem 버전
y.y.y = 설치한 mysql 버전ls /usr/local/Cellar/mysql그걸 찾기 위해서요.

mysql의 버전을 구합니다.

brew info mysql                                                                                                                                                                                                     
mysql: stable 5.7.19 (bottled)
               ...
/usr/local/Cellar/mysql/5.7.19 (322 files, 233MB) *

               ...

번들과 함께 설치하려는 경우:

bundle config build.mysql --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config

Mac OSX 10.6용 64비트 아키텍처에 이 보석을 설치하려면 몇 가지 추가 환경 변수를 지정해야 합니다.

env ARCHFLAGS="-arch x86_64" gem install mysql2

rvm을 사용하는 경우 ~/.rvmrc 파일에서 이 옵션을 기본 옵션으로 추가할 수 있습니다.

rvm_archflags="-arch x86_64"

mysql2를 설치하는 과정에서 발생한 문제와 오류가 정확히 일치했습니다.MySQL의 mamp 설치가 잘 작동할 것이라고 생각하고 몇 시간 동안 경로를 가지고 놀면서 작동했지만 성공하지 못했습니다.

마침내 알로르에서 이 게시물을 발견하고 홈브루를 통해 새로운 버전을 설치했습니다. 그러나 홈브루의 모든 지침을 반드시 따라야 합니다!몇 단계를 놓쳐서 그 문제를 추적하느라 한 시간을 더 허비했습니다. 다음은 지침이 있습니다. https://stackoverflow.com/a/11061487/1241271

MySQL이 성공적으로 설치된 후 다음을 실행했습니다.sudo gem install mysql2매력적으로 통했습니다.

이것이 누군가가 문서를 읽는 것을 소홀히 했기 때문에 몇 시간을 낭비하는 것을 막는데 도움이 되기를 바랍니다.

홈브루를 통해 Mac에 openssl이 설치되어 있는지 확인합니다.

brew install openssl

Install mysql2 gem.

gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/i

이것이 제게 효과가 있었던 것입니다.

gem install mysql2 -v 'x.x.x' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include
  • x.x.x: 설치할 mysql2 gem 버전으로 대체

이것이 여러 번 응답되었다는 것을 알고 있습니다. 다음은 저를 위해 작동하는 것입니다. 2019년 5월 20일 OSX Mojave 10.14.4 MySQL Ver 14.14 배포 5.7.24, EditLine 래퍼 루비 2.5.0p0 (2017-12-25 개정 61468) [x86_64-darwin17] Rails 5.2.1

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/
gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql\@5.7/5.7.24/bin/mysql_config

"/usr/local/Cellar/mysql@5.7/5.7.24/bin/mysql_config"를 "/usr/local/Cellar/mysql"에서 현재 유효한 경로로 변경합니다.

도움이 되길 바랍니다!

Catalina(10.15.x)로 업그레이드 후에도 같은 문제가 있었습니다.

나의 Gemfile.lock은 mysql2-0.3.20을 정의했는데, 설치할 수 없었습니다.mysql2-0.5.2로 업그레이드했을 때는 효과가 있었습니다.

gem update mysql2 -- --srcdir=/usr/local/include/mysql/

브루와 함께 mysql을 설치했는지 확인합니다.

brew install mysql
brew link mysql                                                                                                               

(링크 /usr/local/Cellar/mysql/8.0.18... 95개의 심볼 링크 생성)

그러나 이 후 gem mysql2가 설치되었지만 번들 업데이트 mysql2가 작동하지 않았습니다.

하지만 이 다른 답변이 https://stackoverflow.com/a/39628463/110214 을 도와주었습니다.

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"

bundle update mysql2

언급URL : https://stackoverflow.com/questions/5409761/installing-mysql2-gem-for-ruby-on-rails-with-mac-osx-10-6