web-dev-qa-db-ja.com

Mysql2のインストール中にエラーが発生しました:gemネイティブエクステンションの構築に失敗しました

Rails用にmysql2 gemをインストールしようとしたときに問題が発生しました。 bundle installまたはgem install mysql2を実行してインストールしようとすると、次のエラーが表示されます。

Mysql2のインストール中にエラーが発生しました:エラー:gemネイティブエクステンションの構築に失敗しました。

これを修正してmysql2を正常にインストールする方法を教えてください。

458
spacemonkey

Aptitudeを使ったUbuntu/Debianと他のディストリビューション:

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

自作 を持つMac OS Xの場合:

brew install mysql
884
spacemonkey

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

brew install mysql

mySQLをインストールする。それ以来、私はmysql gemの問題を抱えていません。

58
Kelsin

これは windowsユーザ の解決策です、助けになれば幸いです!

Windows上でMySQLを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/ja/details.aspx?id = 17718

デフォルトインストールのDeveloper Machineを使用

- MySQLサーバ設定 -
港:3306
windowsサービス名:MySQL55
mysql root pass:root(これは後で変更できます)
(ユーザー名:root)
- MySQL Server構成 -

--- mySQLインストールの場合---


--- mysql2 Gemをインストールする---

Important: 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サーバ5.5\include "'

これでgemは正しくインストールされました

最後にlibmysql.dllファイルを次の場所からコピーします。
C:¥Program Files¥MySQL¥MySQL Server 5.5¥lib

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'

Open コマンドプロンプト windows cmd、Git Bashではありません(アプリを実行してください)。
アプリフォルダ(c:\ Sites\world)に移動します。

Rails s

ここであなたのブラウザを開いてください - > http:// localhost:3000

--- MySQLと一緒にRails 3アプリを入手する---

34
Francois

私はいくつかのコンピュータ、32と64ビットプロセッサを持っています、それらはUbuntu Linux、Maverick(10.10)リリースで動きます。

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

20
OfficeYA

MacOSユーザーのためのもう一つの方法

Mysqlのインストールに "brew"を使用した場合

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 = ls /usr/local/Cellar/mysqlをインストールしたmysqlのバージョン。

15
aruanoc

使ってみましたか

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

gemのインストールを完了するのに必要なMySQLディレクトリへのパスと同様にベースディレクトリの場所を指定するのですか?

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

7
João Pereira

あなたがyumを使っているなら、試してください:

Sudo yum install mysql-devel
7
Mark Locklear

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

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

   Sudo apt-get install Ruby1.9.1-dev
5
capu

これは私の問題を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
5
Carlos Pardilla

私はWindows 7でこの問題を抱えていました。これは明らかに非互換性の問題であり、解決策は以下のとおりです。

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

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

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

4
santo101

いくつかの依存関係をインストールする必要があります

Sudo apt-get install libmysql-Ruby libmysqlclient-dev
3
vipin

Debian Stretch上で私にとってうまくいったパッケージは default-libmysqlclient-dev でした。

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

3
Ali Yazdani

私もこのエラーが出ました。開発パッケージをインストールすることで解決しました。私はArchを使っています。

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
arty

私は私の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を実行することができました。

2
lofte

解決策はMac OS Xでのみ機能します

自作でMySQLをインストールした場合、私にとってうまくいったのはMySQLのアンインストールとMySQLウェブサイト( https://www.mysql.com/ )からのMySQL Community Editionのインストールでした。

インストールが完了したら、gem install mysql2または必要に応じてSudo gem install mysql2のコマンドを再入力してください。許可を得ていない場合は問題を拒否してください。

1
the12

あなたがxamppを使用しているなら、あなたがこのようにすることができるなら、例えば、あなたがlibをセットして、あなたのmysqlのパスをインクルードする:

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

libmysql-Rubyは廃止され、置き換えられました。新しいコマンド

 Sudo apt-get install Ruby-mysql libmysqlclient-dev
0
Jerome

Windows 7および64ビットMySQLを使用している場合

64ビットMySQLを使用したい場合は、 here (同様に here )の指示に従ってください。

0
Kitanotori

1)Developer toolsパッケージがインストールされていることを確認すること2)ソースから最新のMySQLパッケージ(私の場合は5.5.8)をダウンロードすること3)cmake.orgからcmakeツールをインストールすることによって、私はgemを造った。 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
tobinjim

それでもエラーが発生する場合は、次にRails 3にmysql2 gemをインストールする手順に従ってください -

http://rorguide.blogspot.com/2011/03/installation-mysql2-gem-on-Ruby-192-and.html

ほとんどのユーザーはmysql2 gemをインストールできました。

0
Ritesh Kumar

mysqllib.dllの正しいバージョンをダウンロードしそれからそれをRuby binにコピーすることは私のために本当に働きます。 mysql2 gemが間違ったmysqlクライアントライブラリ用にコンパイルされた

0
Bruce

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

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

これは悪いmysql2インストールを一掃し、最終的な$ bundleインストールが良いものを作成できるようにします。

0
mmell

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

「最初に開発ツールをインストールする必要があります」と思います。 mysql2 gem /をインストールしようとした際のエラー Mac OS X Mountain Lionへのアップグレード後 。明らかにこのアップグレードをすることはコマンドラインコンパイラを削除します。

修正するには:

  • 私は非常に古いバージョンのXcodeをアンインストールしました(/ Developer/Libraryにあるアンインストールスクリプトを実行しました)。その後、/ Developerディレクトリを削除しました。
  • AppStoreに行き、Xcodeをダウンロードしました。
  • Xcodeを起動してPreferences - > Downloadsの順に進み、コマンドラインツールをインストールしました。
0
Sunil D.

MySqlをインストールしていないため、この問題が発生しています。 mysql2 gemをインストールする前に。 MySQLをインストールします。その後、mysql2 gemがインストールされます。

0
Amrit Dhungana

私の場合、これは役に立ちました:

$ 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

この記事を見なさい

0
Nobita

MacOS Mojaveの場合:

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

0
Allen