mysql2 설치 오류 : gem 기본 확장을 빌드하지 못했습니다


485

mysql2Rails 용 gem 을 설치하려고 할 때 문제가 있습니다. 나는 실행하여 설치하려고 할 때 bundle install또는 gem install mysql2그것은 나에게 다음과 같은 오류를 제공합니다 :

mysql2 설치 오류 : 오류 : gem 기본 확장을 빌드하지 못했습니다.

이 문제를 해결하고 성공적으로 설치하려면 mysql2어떻게 해야 합니까?


내 경우에는 루비 2.1 오류가 표시되지 않지만 몇 분 동안 동결되었습니다. Spacemonkey 답변으로 해결되었습니다.
Lucio

답변:


915

적성을 사용하는 우분투 / 데비안 및 기타 배포판에서 :

sudo apt-get install libmysql-ruby libmysqlclient-dev

패키지 libmysql-ruby가 단계적으로 만료되어로 교체되었습니다 ruby-mysql. 이것이 내가 해결책을 찾은 곳입니다.

위의 명령을 libmysql-ruby찾을 수 없어서 작동하지 않으면 다음과 같이 충분합니다.

sudo apt-get install libmysqlclient-dev

yum을 사용하는 Red Hat / CentOS 및 기타 배포판에서 :

sudo yum install mysql-devel

Homebrew가 설치된 Mac OS X :

brew install mysql

5
Windows 7에서 동일한 문제가 있습니다. 위의 명령은 나를 위해 작동하지
않았다

37
안녕하세요, Ruby 1.9.3 및 Rails 3.2.8과 함께 Ubuntu 12.04를 사용하고 있으며 제 경우에는 설치 libmysqlclient-dev가 충분했습니다.
SMMousavi

2
Mac OSX를 사용하는 경우 : 최신 버전의 XCode로 업데이트하고 개발 도구를 설치하십시오. --with-mysql-config = / usr / local / mysql / bin / mysql_config 사용시에도 동일한 mysql 설치 문제가 있습니다.
Americo Savinon

2
RVM을 통해 Ruby를 설치 한 이후 libmysql-ruby가 필요하지 않음
Michael Lang


60

저는 Mac에 있고 homebrew 를 사용하여 오픈 소스 프로그램을 설치합니다. homebrew를 설치하려면 mac Dev 도구를 설치해야했지만 그 후에는 간단했습니다.

brew install mysql

mysql을 설치하십시오. 그 이후로 mysql gem 문제가 없었습니다.


3
이 작업을 수행 한 후에도 오류가 발생합니다. gem i mysql2를 할 때 몇 가지 옵션을 전달해야합니까 ??
hnprashanth

이것을 실행 한 후 Mac OSX Lion에 mysql2 ruby ​​gem을 설치하는 데 아무런 문제가 없었습니다.
KrisG

3
도움이되지 않으면을 시도하십시오 brew link mysql --force.
Chuck Batson

34

다음은 Windows 사용자를 위한 솔루션입니다. 도움이 되길 바랍니다.

Windows에서 Rails 3과 함께 MySQL 사용

  • railsinstaller- > www.railsinstaller.org 설치 (c : \ Rails에 설치)

  • MySQL 설치 (MySQL 5.5 사용)-> dev.mysql.com/downloads/installer/

--- mySQL 설치 --- 이 두 파일을

아직 설치 하지 않은 경우 MySQL을 vcredist_x86.exe로 이동하려면 파일 이 필요할 수 있습니다

.-> http://www.microsoft.com/download/en/details.aspx? id = 5555 dotNetFx40_Full_x86_x64.exe-> http://www.microsoft.com/download/en/details.aspx?id=17718

기본 설치 개발자 컴퓨터 사용

-MySQL Server 구성
포트 : 3306
Windows 서비스 이름 : MySQL55
mysql 루트 패스 : root (나중에 변경할 수 있음)
(사용자 이름 : root)
-MySQL Server Config-

--- mySQL 설치 ---


--- mysql2 Gem 설치 ---

중요 : Git Bash 명령 줄 (railsinstaller와 함께 설치)을 사용하여이를 수행하십시오.-> start / Git Bash

gem install mysql2- '--with-mysql-lib = "c : \ Program Files \ MySQL \ MySQL Server 5.5 \ lib "--with-mysql-include ="c : \ Program Files \ MySQL \ MySQL Server 5.5 \ include " '

이제 gem이 올바르게 설치되었습니다.

마지막으로 libmysql.dll 파일을
C : \ Program Files \ MySQL \ MySQL Server 5.5 \ lib
to
C : \ Rails \ Ruby1.9.2 \ bin

--- mysql2 Gem 설치 ---


MySQL을 읽은 상태에서 Rails 3 앱을 만드는 방법을 잘 모르겠다면 이제 Rails 앱을 MySQL과 함께 사용할 수 있습니다.


--- MySQL과 함께 Rails 3 앱 가져 오기 ---

Git Bash가 아닌 명령 프롬프트 열기-> start / cmd
폴더로 이동합니다 (c : \ Sites)
Rails 앱 만들기

rails new world

c : \ Sites \ world \ public \ index.html 파일을 삭제하십시오.
c : \ Sites \ world \ config \ routes.rb 파일을 편집하십시오.
이 행을 추가하십시오-> root : to => 'cities # index'

명령 프롬프트 열기 (보기 및 컨트롤러 생성)

rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer



c : \ Sites \ world \ app \ models \ city.rb 파일을 다음과 같이 편집하십시오.

class City < ActiveRecord::Base
 set_table_name "city"
end

c : \ Sites \ world \ config \ database.yml 파일을 다음과 같이 편집하십시오.

development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock

gemfile에 추가

gem 'mysql2'

Git Bash가 아닌 명령 프롬프트 창 cmd 열기 (앱 실행!)
앱 폴더로 이동합니다 (c : \ Sites \ world)

rails s

여기에서 브라우저를여십시오-> http : // localhost : 3000

--- Rails 3 앱을 MySQL과 함께 사용하십시오 ---


고마워, 문제는 내가 일반적인 명령 프롬프트가 아닌 widnows PowerShell을 사용했다는 것입니다. 지금 그것은 작동합니다 :)
Danpe

호스트는 127.0.0.1이어야하고, 비밀번호가 숫자 인 경우, 인용 부호 '123456'으로 입력해야합니다. 그렇지 않으면 정상적으로 입력 할 수 있습니다. ex admin123
duykhoa

3
XAMPP 사용 :gem install mysql2 -- --with-mysql-dir=C:\xampp\mysql
Mifeng

--with-mysql-include 경로를 확인하십시오. gem install mysql2---platform = ruby ​​--with-mysql-lib = "d : \ mariadb \ lib"--with-mysql-include = "d : \ mariadb \ include \ mysql "
Ivan

@Mifeng은 나를 위해 훌륭하게 일했지만 GitBash를 사용하고 -- --with-mysql-dir="C:\xampp\mysql"있으며 따옴표없이``내가 제거되었습니다. 감사합니다
Mutmatt

20

나는 32 비트와 64 비트 프로세서의 여러 컴퓨터를 가지고 있으며 Ubuntu Linux, Maverick (10.10) 릴리스에서 실행됩니다.

나는 똑같은 문제를 겪었고 나 sudo apt-get install libmysql-ruby libmysqlclient-dev 에게는 그 일을했다 !!!


19

대한 맥 OS 모하비 :

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


MacOS Catalina
Vlad

17

MacOS 사용자를위한 다른 방법

"brew"를 사용하여 mysql을 설치 한 경우 :

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

xxx = 설치하려는 mysql2 gem
버전 yyy = ls /usr/local/Cellar/mysql찾은 mysql 버전 .


여기에서 묻는 모든 종류의 질문에서 ~ 10 개의 답변을 시도했습니다 ... 해결했습니다. 감사합니다 :)
Stan

7

사용해 보셨습니까

 gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib 

gem 설치를 완료하는 데 필요한 MySQL 라이브러리의 경로와 기본 디렉토리의 위치를 ​​지정하려면?

출처 : MySQL Gem Install ERROR : gem 기본 확장 빌드 실패 MySQL 포럼 :: Ruby :: Ruby 용 MySQL 바인딩 설치에 필요한 도움말


잘 했어. 나는 다른 경로를 사용해야했는데, 경로를 호출 which mysql한 다음 lib거기 에서 디렉토리 를 찾아서 찾았 습니다.
Joshua Pinter

7

yum을 사용하는 경우 다음을 시도하십시오.

sudo yum install mysql-devel

CentOS 기반의 Amazon EC2 마이크로 인스턴스에서 저에게 효과적이었습니다.
레논

5

이것은 Windows에서 한 번 내 문제를 해결했습니다.

subst X: "C:\Program files\MySQL\MySQL Server 5.5" 
gem install mysql2 -v 0.x.x --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt 
subst X: /D

소스를 게시하려고했지만 Ritesh Kumar 사용자가 이미 그렇게했습니다. 그래서 그의 장점은 나의 것이 아닙니다.
카를로스 파딜라

lib에 opt 폴더가없는 경우 :gem install mysql2 --platform=ruby -- --with-mysql-dir=X: --without-opt-dir
Junior Mayhé

5

여전히 문제가있는 경우….

설치를 시도하십시오

   sudo apt-get install ruby1.9.1-dev

4

Windows 7 에서이 문제가 발생했습니다. 비 호환성 문제이며 해결책은 다음과 같습니다.

libmySQL.dll이전 InstantRails 설치 프로그램에서 파일을 다운로드하십시오 . InstantRails GitHub 저장소 에서 구할 수 있습니다 .

그런 다음 해당 파일을 Ruby / bin 폴더에 복사하십시오.

자, 당신은 갈 수 있습니다;)


1
흠 :(이 시도했지만 여전히 실행하려고 할 때 오류가 발생합니다 bundle install.
aakoch

3

이 오류도 발생했습니다. 개발 패키지를 설치하여 해결했습니다. 아치를 사용하고 있으며 다음과 같습니다.

sudo pacman -S base-devel

어느 설치 :

m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config

하지만 실제로 make와 gcc가 필요하다고 생각합니다. 오류 출력 (내 컴퓨터에서) :

"먼저 개발 도구를 설치해야합니다."

그래서 그것은 명백한 결정이었고 도움이되었습니다.


3

일부 종속성을 설치해야합니다

sudo apt-get install libmysql-ruby libmysqlclient-dev

3

데비안 스트레치에서 나를 위해 일한 패키지는 default-libmysqlclient-dev 였습니다.

sudo apt-get update && apt-get install -y default-libmysqlclient-dev


3

제 경우에는 이것이 도움이되었습니다.

$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"

그때:

gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib

결과:

Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Installing ri documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed

이 게시물을 참조하십시오 (경고 : 일본어 내부).


3

우분투 (18.04)

다음을 실행 하여이 문제를 해결할 수있었습니다.

sudo apt-get install build-essential libmysqlclient-dev
gem install mysql2

참고


2

내 Mac 에서이 오류가 발생 하여이 오류를 없애기 위해 mysql 32 비트에서 mysql 64 비트로 업그레이드해야한다는 것을 알았습니다. 루비 1.9.2 및 레일스 3.0.0을 사용하는 인텔 맥북 프로에서 OSX 10.6을 실행 중이었습니다.

gem을 컴파일하는 데 필요한 "make"와 같은 유닉스 유틸리티를 얻으려면 xcode를 설치해야했습니다.

이 작업이 완료되면 gem install mysql 및 gem install mysql2를 오류없이 실행할 수있었습니다.


1

Windows 사용자의 경우 : 예를 들어 xampp를 사용하는 경우 mysql의 lib 및 include 경로를 설정하면 다음과 같이 할 수 있습니다.

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'

1

솔루션은 Mac OS X에서만 작동합니다

homebrew와 함께 MySQL을 설치했다면 MySQL을 제거하고 MySQL 웹 사이트 ( https://www.mysql.com/) 를 통해 MySQL Community Edition을 설치하는 것이 효과적이었습니다. ) .

설치가 끝나면 다음 명령을 다시 입력하십시오. gem install mysql2sudo gem install mysql2 권한 거부 문제가 발생하는 경우 하거나 필요한 .


0

1) 개발자 도구 패키지가 설치되어 있는지 확인 2) 소스에서 현재 MySQL 패키지 (필자의 경우 5.5.8) 다운로드 3) cmake.org에서 cmake 도구 설치 4 ) mysql 배포 파일에서 INSTALL-SOURCE의 2.11 섹션에있는 지침에 따라 5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include gem이 성공적으로 빌드되었지만 rdoc 및 ri에 대해 문서에 두 가지 오류가 있습니다. 그러나 지금 'mysql2'를 요구하려고하면

LoadError: no such file to load -- mysql2/mysql2

내가 얻을 수있는 오류는 다른 게시물 (install_name_tool 검색)에서 알았 기 때문에 libmysqlclient.16.dylib를 찾을 수 없기를 바랐습니다.

내 $ PATH에는 / usr / local / mysql (내 소스 및 빌드 파일이있는 곳)이 있으므로 약간 혼란스러워합니다. 누군가 생각이 있다면, 몇 시간 동안 자고 나서 다시 확인해 보겠습니다.



0

mysql-dev 문제를 해결 한 후 잘못된 mysql2 설치를 제거해야 할 수도 있습니다. $ 번들 설치 후 메시지를주의 깊게보십시오. 당신이해야 할 수도 있습니다

rm -rf vendor/cache/
rm -rf ./Zentest

이것은 최종 $ bundle 설치가 좋은 것을 만들 수 있도록 잘못된 mysql2 설치를 제거합니다.



0

"먼저 개발 도구를 설치해야합니다." Mac OS X Mountain Lion으로 업그레이드 한 후 mysql2 gem을 설치하려고하면 오류가 발생합니다 합니다. 분명히이 업그레이드를 수행하면 명령 행 컴파일러가 제거됩니다.

고치다:

  • 이전 버전의 Xcode를 제거했습니다 (/ Developer / Library에서 제거 스크립트 실행). 그런 다음 / Developer 디렉토리를 삭제했습니다.
  • AppStore로 이동하여 Xcode를 다운로드했습니다.
  • Xcode를 시작하고 환경 설정-> 다운로드로 이동하여 명령 행 도구를 설치했습니다.

0

MySql을 설치하지 않았기 때문에이 문제가 발생합니다. mysql2 gem을 설치하기 전에. MySQL을 설치하십시오. 그 후 mysql2 gem이 설치됩니다.


0

Mac 사용자 를 위해이 답변을 추가하고 싶었습니다. .

xcode를 업데이트 할 때까지 서버가 제대로 작동했습니다. 레일 서버를 시작하는 동안 오류가 다음과 같이 표시되었습니다

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
    checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-  
    p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an    
    executable file. (RuntimeError)

그리고 오류 메시지 끝에 mysql2 gem을 설치하라는 제안이있었습니다. 그래서 설치를 시도했을 때이 질문에서 언급 한 것처럼 오류가 발생했습니다. 내가 가진 오류는 다음과 같습니다

ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

그래서이 게시물에서 제안한 것처럼 'brew install mysql'을 시도하고 mysql 버전이 이미 설치되어 있다고 말하는 것을 끝내 었습니다. 그러나 말하기 전에 경고가있었습니다.

Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license

그런 다음 이것을 시도 sudo xcodebuild -license하고 끝에 '동의 함'을 입력하십시오. 라이센스에 동의하려면 루트 여야합니다.

이 후 번들 설치를 다시 시도한 후 모든 것이 정상적으로 작동합니다. [이 xcode 업데이트로 인해 타워에도 문제가있었습니다.]


0

libmysql-ruby 단계적으로 폐지되어 교체되었습니다. 새로운 명령 :

 sudo apt-get install ruby-mysql libmysqlclient-dev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.