Rails用にmysql2
gemをインストールしようとしたときに問題が発生しました。 bundle install
またはgem install mysql2
を実行してインストールしようとすると、次のエラーが表示されます。
Mysql2のインストール中にエラーが発生しました:エラー:gemネイティブエクステンションの構築に失敗しました。
これを修正してmysql2
を正常にインストールする方法を教えてください。
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
私はMacを使っていて、 homebrew を使ってオープンソースプログラムをインストールします。私は自作をインストールするためにMac Devツールをインストールする必要がありましたが、その後それは簡単でした:
brew install mysql
mySQLをインストールする。それ以来、私はmysql gemの問題を抱えていません。
これは windowsユーザ の解決策です、助けになれば幸いです!
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アプリを入手する---
私はいくつかのコンピュータ、32と64ビットプロセッサを持っています、それらはUbuntu Linux、Maverick(10.10)リリースで動きます。
私は同じ問題を抱えていました、そして私にとって、Sudo apt-get install libmysql-Ruby libmysqlclient-dev
は仕事をしました!
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のバージョン。
使ってみましたか
gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib
gemのインストールを完了するのに必要なMySQLディレクトリへのパスと同様にベースディレクトリの場所を指定するのですか?
ソース: MySQL Gem Installエラー:gemネイティブエクステンションの構築に失敗しましたMySQLフォーラム:: Ruby :: Ruby用のMySQLバインディングのインストールに必要なヘルプ
あなたがyumを使っているなら、試してください:
Sudo yum install mysql-devel
それでも問題が解決しない場合は…。
インストールしてみてください
Sudo apt-get install Ruby1.9.1-dev
これは私の問題を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
私はWindows 7でこの問題を抱えていました。これは明らかに非互換性の問題であり、解決策は以下のとおりです。
古いInstantRailsインストーラからlibmySQL.dll
ファイルをダウンロードしてください。 InstantRails GitHubリポジトリ から入手できます。
次に、そのファイルをRuby/binフォルダにコピーします。
さて、あなたは行ってもいいです;)
いくつかの依存関係をインストールする必要があります
Sudo apt-get install libmysql-Ruby libmysqlclient-dev
Debian Stretch上で私にとってうまくいったパッケージは default-libmysqlclient-dev でした。
Sudo apt-get update && apt-get install -y default-libmysqlclient-dev
私もこのエラーが出ました。開発パッケージをインストールすることで解決しました。私は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が必要だと思います。エラー出力は(私のマシン上で、とりわけ)言った:
「まず開発ツールをインストールする必要があります。」
だからそれは明白な決断だったし、それは助けた。
私は私の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を実行することができました。
解決策はMac OS Xでのみ機能します
自作でMySQLをインストールした場合、私にとってうまくいったのはMySQLのアンインストールとMySQLウェブサイト( https://www.mysql.com/ )からのMySQL Community Editionのインストールでした。
インストールが完了したら、gem install mysql2
または必要に応じてSudo gem install mysql2
のコマンドを再入力してください。許可を得ていない場合は問題を拒否してください。
あなたがxamppを使用しているなら、あなたがこのようにすることができるなら、例えば、あなたがlibをセットして、あなたのmysqlのパスをインクルードする:
gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
libmysql-Ruby
は廃止され、置き換えられました。新しいコマンド
Sudo apt-get install Ruby-mysql libmysqlclient-dev
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が含まれています(これが私のソースファイルとビルドされたファイルが置かれている場所です)。誰かが何か考えがあれば、私は数時間の睡眠の後にまたチェックします。
それでもエラーが発生する場合は、次にRails 3にmysql2 gemをインストールする手順に従ってください -
http://rorguide.blogspot.com/2011/03/installation-mysql2-gem-on-Ruby-192-and.html
ほとんどのユーザーはmysql2 gemをインストールできました。
mysqllib.dllの正しいバージョンをダウンロードしそれからそれをRuby binにコピーすることは私のために本当に働きます。 mysql2 gemが間違ったmysqlクライアントライブラリ用にコンパイルされた
Mysql-devの問題を修正した後、悪いmysql2インストールを削除する必要があるかもしれません。 $ bundleインストール後のメッセージをよく見てください。あなたがする必要があるかもしれません
rm -rf vendor/cache/
rm -rf ./Zentest
これは悪いmysql2インストールを一掃し、最終的な$ bundleインストールが良いものを作成できるようにします。
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の更新が原因で、タワーにも問題がありました。]
「最初に開発ツールをインストールする必要があります」と思います。 mysql2 gem /をインストールしようとした際のエラー Mac OS X Mountain Lionへのアップグレード後 。明らかにこのアップグレードをすることはコマンドラインコンパイラを削除します。
修正するには:
MySqlをインストールしていないため、この問題が発生しています。 mysql2 gemをインストールする前に。 MySQLをインストールします。その後、mysql2 gemがインストールされます。
私の場合、これは役に立ちました:
$ 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
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