mysql2のインストールエラー:gemネイティブ拡張のビルドに失敗しました


485

mysql2Rails用のgem をインストールしようとすると問題が発生します。私は実行してインストールしようとするbundle installか、gem install mysql2それは私に次のエラーを与えます:

mysql2のインストールエラー:エラー:gemネイティブ拡張のビルドに失敗しました。

これを修正して正常にインストールするにはどうすればよいmysql2ですか?


私の場合、ruby 2.1ではエラーは表示されませんでしたが、数分間フリーズしました。Spacemonkeyの回答で修正されました。
Lucio、2015年

回答:


916

Ubuntu / Debianおよびaptitudeを使用するその他のディストリビューション:

sudo apt-get install libmysql-ruby libmysqlclient-dev

パッケージlibmysql-rubyは段階的に廃止され、に置き換えられましたruby-mysqlこれが私が解決策を見つけた場所です。

libmysql-rubyが見つからないために上記のコマンドが機能しない場合は、以下で十分です。

sudo apt-get install libmysqlclient-dev

Red Hat / CentOSおよびyumを使用するその他のディストリビューション:

sudo yum install mysql-devel

Homebrewを搭載したMac OS Xの場合:

brew install mysql

5
私はwindows 7..anyのアイデアで同じ問題がありますか?上記のコマンドは、私には
うまくいき

37
こんにちは、Ruby 1.9.3とRails 3.2.8でUbuntu 12.04を使用していlibmysqlclient-devます。私の場合、インストールで十分です。
SMMousavi 2012年

2
Mac OSXを使用している場合:最新バージョンのXCodeに更新し、開発ツールをインストールします。同じmysqlインストールの問題がありました(--with-mysql-config = / usr / local / mysql / bin / mysql_configを使用している場合でも)
Americo Savinon

2
RVM経由でRubyをインストールしたのでlibmysql-rubyは必要ありませんでした
Michael Lang


60

私はMacを使っており、自作を使用してオープンソースプログラムをインストールしています。自作をインストールするためにMac Dev Toolsをインストールする必要がありましたが、その後は簡単でした。

brew install mysql

mysqlをインストールします。それ以来、mysql gemの問題は発生していません。


3
これを実行してもエラーが発生します。gem i mysql2を実行するときにいくつかのオプションを渡す必要がありますか?
hnprashanth 2012

これを実行した後、Mac OSX Lionにmysql2 ruby​​ gemをインストールしても問題はありませんでした。
KrisG

3
これで問題が解決しない場合は、を試してくださいbrew link mysql --force
チャック・バットソン

34

これはWindowsユーザーのためのソリューションです、それが役に立てば幸いです!

MySQLをWindowsのRails 3で使用する

  • railsinstallerをインストールします -> www.railsinstaller.org(私はc:\ Railsにインストールしました)

  • MySQLをインストールします(私はMySQL 5.5を使用しました)-> dev.mysql.com/downloads/installer/

--- mySQLのインストール--- これらの2つのファイルを

まだインストールしていない場合は、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 デフォルトのインストールDeveloper Machineを使用



-MySQLサーバー構成-
ポート:3306
Windowsサービス名:MySQL55
mysqlルートパス:ルート(後で変更できます)
(ユーザー名:ルート)
-MySQLサーバー構成-

--- 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アプリを作成する方法がわからない場合は、MySQLでRailsアプリを使用できるようになります。


--- 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

--- MySQLに対応したRails 3アプリを入手---


おかげで、問題は通常のコマンドプロンプトではなくwidnows PowerShellを使用したことでした。今それは働いている:)
Danpe

ホストは127.0.0.1である必要があります。パスワードが数字の場合は、「123456」のように引用符で
囲む

3
XAMPPの使用:gem install mysql2 -- --with-mysql-dir=C:\xampp\mysql
Mifeng 2014年

パス--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 14

20

私は32ビットと64ビットのプロセッサを搭載した複数のコンピュータを使用していますが、それらはUbuntu Linux、Maverick(10.10)リリースで実行されます。

私は同じ問題を抱えていました、そして私にとって sudo apt-get install libmysql-ruby libmysqlclient-dev は、仕事をしました!!!


19

以下のためのMacOSのモハベ

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


MacOSカタリナと同様
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個の回答を試してみました...解決しました ありがとう:)
スタン

7

使ってみましたか

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

ベースディレクトリの場所と、gemのインストールを完了するために必要なMySQLライブラリへのパスを指定するには、

ソース: MySQL Gemインストールエラー:gemネイティブ拡張の構築に失敗しました MySQLフォーラム:: Ruby :: RubyのMySQLバインディングのインストールに必要なヘルプ


うまくいきました。別のパスを使用する必要がありました。このパスを呼び出してから、そこからディレクトリをwhich mysql見つけましたlib
Joshua Pinter、2017年


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がすでに投稿しているのがわかります。ですから、私の功績ではなく、彼の功績です。
Carlos Pardilla、2011

libにoptフォルダーがない場合:gem install mysql2 --platform=ruby -- --with-mysql-dir=X: --without-opt-dir
JuniorMayhéMar

5

それでも問題が解決しない場合は…。

インストールしてみてください

   sudo apt-get install ruby1.9.1-dev

4

Windows 7でこの問題が発生しました。これは明らかに非互換性の問題であり、解決策は次のとおりです。

libmySQL.dll古いInstantRailsインストーラーからファイルをダウンロードします。これは、InstantRails GitHubリポジトリから入手できます。

次に、そのファイルをRuby / binフォルダーにコピーします。

今、あなたは行ってもいいです;)


1
Hrm。:(私はこれを試してみましたが、実行しようとしたときにまだエラーを取得します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

Debian Stretchでは、私にとって有効なパッケージは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

Ubuntuの場合(18.04)

私は以下を実行することでこの問題を解決することができました:

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

参照


2

Macでこのエラーに遭遇し、このエラーを解消するには、mysql 32ビットからmysql 64ビットにアップグレードする必要があることがわかりました。Ruby 1.9.2とrails3.0.0を搭載したIntel Macbook ProでOSX 10.6を実行していました

また、gemのコンパイルに必要な「make」などのUNIXユーティリティを取得するために、xcodeをインストールする必要もありました。

これが完了すると、gem install mysqlおよびgem install mysql2をエラーなしで実行できました。


1

Windowsユーザーの場合:libを設定し、mysqlのパスをインクルードします。たとえば、xamppを使用している場合は、次のようにすることができます。

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

1

ソリューションはMac OS Xでのみ機能します

MySQLをhomebrewでインストールした場合、MySQLをアンインストールし、MySQL Webサイト(https://www.mysql.com/)を介してMySQL Community Editionをインストールすることがうまくいきました。

インストール後、コマンドを再入力するgem install mysql2か、必要に応じて、sudo gem install mysql2権限拒否の問題が発生している場合は、コマンドを再入力します。


0

1)によってMac OS X 10.6.6でgemをビルドしました。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が不満を言うドキュメントに2つのエラーがあります。しかし、今 'mysql2'を要求しようとすると、

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

私が得るエラーはlibmysqlclient.16.dylibが見つからなかったことで、別の投稿(install_name_toolを検索)でそれを見つけたので、期待していました。

私の$ PATHには/ usr / local / mysqlが含まれているため(ソースとビルドされたファイルが配置されている場所)、少し困惑しています。誰かが何か考えを持っているなら、私は数時間の睡眠の後でまたチェックします。



0

mysql-devの問題を修正した後、不良なmysql2インストールを削除する必要がある場合があります。$ bundle install後のメッセージをよく見てください。あなたがする必要があるかもしれません

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

これにより、不正な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を更新するまで、サーバーは完全に問題なく動作していました。Railsサーバーを起動している間、エラーは次のように表示されました

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て、最後に「同意する」と入力します。ライセンスに同意するには、rootである必要があります。

この後、もう一度バンドルインストールを試しましたが、すべて正常に機能しています。[このxcodeの更新があったとしても、タワーにも問題がありました。]


0

libmysql-ruby 廃止され、交換されました。新しいコマンド:

 sudo apt-get install ruby-mysql libmysqlclient-dev
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.