519

mysql2Rails に gemをインストールしようとすると、いくつかの問題が発生します。実行してインストールしようとすると、次のエラーがbundle install表示されgem install mysql2ます。

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

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

4

30 に答える 30

950

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
于 2010-08-31T12:00:21.447 に答える
63

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

brew install mysql

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

于 2011-05-25T22:48:00.050 に答える
38

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

于 2019-08-11T13:48:01.300 に答える
37

これがWindowsユーザー向けのソリューションです。お役に立てば幸いです。

WindowsでのRails3でのMySQLの使用

  • 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アプリを入手してください---

于 2012-02-16T19:44:04.733 に答える
20

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

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

于 2011-01-23T07:44:18.777 に答える
19

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

于 2015-09-30T15:15:01.267 に答える
7

使ってみましたか

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

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

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

于 2010-08-31T11:23:30.957 に答える
7

yum を使用している場合は、次を試してください。

sudo yum install mysql-devel
于 2011-10-20T19:57:16.053 に答える
5

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

インストールしてみる

   sudo apt-get install ruby1.9.1-dev
于 2013-08-05T11:32:15.297 に答える
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
于 2011-08-09T01:40:15.223 に答える
4

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

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

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

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

于 2011-02-20T09:03:31.120 に答える
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が必要だったと思います。エラー出力は次のように述べています(特に私のマシンで):

「最初に開発ツールをインストールする必要があります。」

ですから、それは当然の決定であり、助けになりました。

于 2010-10-16T12:40:42.290 に答える
3

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

sudo apt-get install libmysql-ruby libmysqlclient-dev
于 2015-12-28T13:29:42.063 に答える
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 を実行できました。

于 2010-09-14T15:59:06.013 に答える
1

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 が含まれているので (そこにソース ファイルとビルド ファイルが置かれています)、少し困惑しています。何か考えがある人がいたら、数時間寝てからまたチェックします。

于 2011-01-13T08:22:40.823 に答える
1

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

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

インストール後、許可が拒否された問題が発生した場合は、gem install mysql2必要に応じて またはにコマンドを再入力してください。sudo gem install mysql2

于 2016-12-02T01:51:40.050 に答える
1

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

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
于 2015-08-13T05:39:56.820 に答える
0

「最初に開発ツールをインストールする必要があります」を取得しました。Mac OS XMountainLionにアップグレードした後にmysql2gemをインストールしようとするとエラーが発生します。どうやらこのアップグレードを行うと、コマンドラインコンパイラが削除されます。

修正するには:

  • 非常に古いバージョンのXcodeをアンインストールしました(/ Developer / Libraryでアンインストールスクリプトを実行しました)。次に、/Developerディレクトリを削除しました。
  • AppStoreにアクセスし、Xcodeをダウンロードしました。
  • Xcodeを起動し、[設定]-> [ダウンロード]に移動して、コマンドラインツールをインストールしました。
于 2013-02-12T02:10:04.160 に答える
0

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

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

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

于 2011-05-30T18:45:54.977 に答える
0

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

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

これにより、不適切な mysql2 インストールがクリアされ、最終的な $ bundle インストールで適切なインストールが作成されます。

于 2011-12-13T02:49:51.917 に答える
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 の更新が原因で、タワーにも問題がありました。]

于 2014-10-01T07:29:30.750 に答える
0

適切なバージョンの mysqllib.dll をダウンロードしてから、それを ruby​​ bin にコピーすると、本当にうまくいきます。このリンクをたどると、間違った mysql クライアント ライブラリ用にコンパイルされた mysql2 gem が生成されます

于 2012-10-03T09:36:17.533 に答える