mysql2
Rails に gemをインストールしようとすると、いくつかの問題が発生します。実行してインストールしようとすると、次のエラーがbundle install
表示されgem install mysql2
ます。
mysql2 のインストール中にエラーが発生しました: エラー: gem ネイティブ拡張機能のビルドに失敗しました。
これを修正して正常にインストールするにはどうすればよいmysql2
ですか?
mysql2
Rails に gemをインストールしようとすると、いくつかの問題が発生します。実行してインストールしようとすると、次のエラーがbundle install
表示されgem install mysql2
ます。
mysql2 のインストール中にエラーが発生しました: エラー: gem ネイティブ拡張機能のビルドに失敗しました。
これを修正して正常にインストールするにはどうすればよいmysql2
ですか?
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を使用したMacOSXの場合:
brew install mysql
私は Mac を使用しており、homebrewを使用してオープン ソース プログラムをインストールしています。homebrew をインストールするために mac Dev tools をインストールする必要がありましたが、その後は簡単でした:
brew install mysql
mysqlをインストールします。それ以来、mysql gem の問題は発生していません。
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
これが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 = 5555dotNetFx40_Full_x86_x64.exe-> http://www.microsoft.com/download/en/details.aspx?id=17718
デフォルトのインストールDeveloperMachineを使用する-MySQL Server Config-
ポート: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
---mysql2Gemをインストールします---
MySQLでRails3アプリを作成する方法がわからない場合は、MySQLでRailsアプリを使用できるようになります...
---MySQLでRails3アプリを
起動します---
コマンドプロンプトを開きます(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'
GitBashではなくコマンドプロンプトwindowscmdを開きます(アプリを実行します!)
アプリフォルダー(c:\ Sites \ world)に移動します
rails s
ここでブラウザを開きます-> http:// localhost:3000
---MySQLで動作するRails3アプリを入手してください---
私はいくつかのコンピューター、32 ビットおよび 64 ビットのプロセッサーを持っています。それらは Ubuntu Linux、Maverick (10.10) リリースで実行されます。
私は同じ問題を抱えていましたが、私にとって
sudo apt-get install libmysql-ruby libmysqlclient-dev
は仕事でした!!!
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 = インストールした mysql のバージョンls /usr/local/Cellar/mysql
。
使ってみましたか
gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib
ベース ディレクトリの場所と、gem のインストールを完了するために必要な 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 でこの問題が発生しました。これは明らかに非互換性の問題であり、解決策は次のとおりです。
libmySQL.dll
古い InstantRails インストーラーからファイルをダウンロードします。これは、InstantRails GitHub リポジトリから入手できます。
次に、そのファイルを Ruby/bin フォルダーにコピーします。
さて、あなたは行ってもいいです;)
私もこのエラーを受け取りました。開発パッケージをインストールすることで解決しました。私はアーチを使用していますが、それは次のとおりです。
sudo pacman -S base-devel
インストールしたもの:
m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config
しかし、実際にはmakeとgccが必要だったと思います。エラー出力は次のように述べています(特に私のマシンで):
「最初に開発ツールをインストールする必要があります。」
ですから、それは当然の決定であり、助けになりました。
いくつかの依存関係をインストールする必要があります
sudo apt-get install libmysql-ruby libmysqlclient-dev
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) 開発者ツール パッケージがインストールされていることを確認する 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 は正常にビルドされましたが、ドキュメントに 2 つのエラーがあり、rdoc と ri が不満を述べています。しかし、「mysql2」を要求しようとすると、
LoadError: no such file to load -- mysql2/mysql2
別の投稿 (install_name_tool を検索) で見つけたので、libmysqlclient.16.dylib が見つからないというエラーが表示されることを期待していました。
私の $PATH には /usr/local/mysql が含まれているので (そこにソース ファイルとビルド ファイルが置かれています)、少し困惑しています。何か考えがある人がいたら、数時間寝てからまたチェックします。
ソリューションは Mac OS X でのみ機能します
自作で MySQL をインストールした場合、MySQL をアンインストールし、MySQL の Web サイト ( https://www.mysql.com/ )から MySQL Community Edition をインストールすることでうまくいきました。
インストール後、許可が拒否された問題が発生した場合は、gem install mysql2
必要に応じて またはにコマンドを再入力してください。sudo gem install mysql2
Windows ユーザーの場合: lib を設定し、mysql のパスをインクルードします。たとえば、xampp を使用している場合は、次のようにすることができます。
gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
「最初に開発ツールをインストールする必要があります」を取得しました。Mac OS XMountainLionにアップグレードした後にmysql2gemをインストールしようとするとエラーが発生します。どうやらこのアップグレードを行うと、コマンドラインコンパイラが削除されます。
修正するには:
それでもエラーが発生する場合は、Rails 3 での mysql2 gem インストールの手順に従ってください -
http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html
ほとんどのユーザーが mysql2 gem をインストールできました。
mysql-dev の問題を修正したら、問題のある mysql2 インストールを削除する必要がある場合があります。$ bundle install の後のメッセージをよく見てください。あなたがする必要があるかもしれません
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 の更新が原因で、タワーにも問題がありました。]
適切なバージョンの mysqllib.dll をダウンロードしてから、それを ruby bin にコピーすると、本当にうまくいきます。このリンクをたどると、間違った mysql クライアント ライブラリ用にコンパイルされた mysql2 gem が生成されます