206

私はしばらくこれに苦労してきました。

Snow Leopard マシンに Rails 3、gem、mysql をインストールしました。最初のプロジェクトを作成して実行しようとするまで、すべてがうまくいっていました

rails server

これを実行すると、次のようになります。

jontybrook$ rails server
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib (LoadError)
  Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
  Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
    from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2.rb:7
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler.rb:112:in `require'
    from /Users/jontybrook/Dropbox/CODING/simple_cms/config/application.rb:7
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28:in `require'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27
    from script/rails:6:in `require'
    from script/rails:6
jontybrook$ 

私が知る限り、問題は mysql2 gem にあります。MySQL は正常に動作しているようで、Gemfile は mysql2 を参照しています。database.yml ファイルも問題ないようです。

エラーは言及しています

Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

それでも

jontybrook$ cd /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2
jontybrook$ ls
client.rb   em.rb       error.rb      mysql2.bundle result.rb

MySQL2.bundle あります!?

古い mysql gem を使用すると、WEBrick は正常に起動します。しかし、それは理想的ではありませんね。

私はグーグルが私に与えることができるすべてを試しました! どんな助けでも大歓迎です。

4

24 に答える 24

395

私はこれらの答えを得ることができませんでしたが、これは私がそれを機能させるために使用したコマンドです. これにより、mysql を更新するたびに install_name_tool を使用する必要がなくなります。

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
于 2011-05-23T17:24:01.660 に答える
93

私はこれを最終的に解決しました!

RubyとRailsをRVMに再インストールしました。Rubyバージョン1.9.2-p136を使用しています。

rvmで再インストールした後も、このエラーは引き続き発生していました。

結局、それを解決した魔法のコマンドは次のとおりでした。

sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

これが他の誰かに役立つことを願っています!

于 2010-12-30T04:57:15.103 に答える
88

この修正は私にとって非常にうまくいきました:

〜/.profileに以下を追加します

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/

于 2011-02-16T10:02:21.857 に答える
43

私にとってこれは、mysql をアップグレードしたが、mysql2 gem を更新していなかったためです。gem を再インストールすると修正されます...

gem pristine mysql2

于 2013-11-10T19:58:07.087 に答える
28

同じ問題があります。libmysqlclient ライブラリが見つからないようです。私のために働いた一時的な修正は次のとおりです。

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/

config がロード パスを指定している場所や、それが何に設定されているかはわかりませんが、私の mysql インストールはそこにあるようには見えませんでした。より恒久的な解決策が見つかったら、もう一度投稿します。

編集:実際、この修正は問題をより正確に解決しているようです。

于 2010-12-28T21:52:29.953 に答える
25

以下をあなたに追加してください~/.bash_profile

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

これは私のために働いた

于 2011-11-29T00:24:48.587 に答える
19

OSX El Capitan では、これを行うと次のように更新されます。

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

次のようなエラーがスローされます

ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted

libmysqlclient.18.dylibしたがって、これを回避するには、最初にコマンドを使用して見つけることができます

User$ locate libmysqlclient.18.dylib

私の場合は戻りました/usr/local/mysql-5.5.24-osx10.5-x86_64/lib/libmysqlclient.18.dylib

代わりに、次のようなusr/lib/シンボリック リンクを作成します。usr/local/lib/

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib

詳細: https://forums.developer.apple.com/thread/7935

于 2015-10-30T05:28:55.030 に答える
13

次の行は私にとってはうまくいきます。Mac 10.7.2 を使用しています。

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

于 2013-01-07T15:19:36.163 に答える
12

この問題に遭遇しました。私がしなければならなかったのは、mysql2 gem をアンインストールして再インストールすることだけでした。これが他の人にも役立つことを願っています

于 2012-04-23T17:52:17.673 に答える
4

これは私にとってどのように機能したかです:

以下のコマンド
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.7 を実行しました/lib/mysql2/mysql2.bundle

私の環境:
$ rails -v Rails 3.0.6

$ mysql --version
mysql Ver 14.14 Distrib 5.5.11、readline 5.1 を使用する osx10.6 (i386) 用

$ ruby​​ -v
ruby​​ 1.9.2p180 (2011-02-18 リビジョン 30909) [x86_64-darwin10.7.0]

これが誰かに役立つことを願っています。

于 2011-04-12T06:43:08.847 に答える
3

現在のプロジェクトのgemsetを削除して再作成し、バンドルインストールを再実行することで、この問題を解決しました。新しいバージョンのmysqlをインストールしたことが原因だと思います。

于 2011-03-11T17:32:08.683 に答える
3

ありがとう、オガポ!そのエイリアスをエクスポートするとうまくいき、リンクをたどったところ、私の場合、mysql2.bundle は /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle にあったので、 ~/.rvm のバンドルではなく、そのバンドルを変更するように install_name_tool を調整し、本来の方法で機能するようにしました。

だから今:

   $ otool -L /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 
    /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle:
        /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/libruby.1.dylib (compatibility version 1.8.0, current version 1.8.7)
        /usr/local/mysql/lib/libmysqlclient.16.dylib (compatibility version 16.0.0, current version 16.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
于 2010-12-28T23:34:31.310 に答える
3

Djangoで作業しているときにこの問題が発生しました。以前brewは多くのオープンソースプログラムをインストールしていましたが、以前はbrewインストールしていたため、次のことを行う必要がありましたmysql

sudo ln -s /usr/local/Cellar/mysql/5.5.20/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

必ずお使いのバージョンのライブラリに置き換えてください!

于 2012-04-16T05:04:32.633 に答える
3

こんにちは、フレディ・アンダーセンの推奨リンクからうまくいきました

sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql /lib/libmysqlclient.16.dylib /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

コマンドで、私のバージョンのmysqlに変更する必要がありました、ありがとう

于 2011-01-24T12:40:43.510 に答える
2

ジョンティ、私もこれに苦労しています。

ここに手がかりがあると思います:

otool -L /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle:
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/libruby.1.dylib (compatibility version 1.8.0, current version 1.8.7)
    libmysqlclient.16.dylib (compatibility version 16.0.0, current version 16.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)

dylib へのパスがかなり短いことに注意してください。

gem のインストール手順が dylib パスから離れている場所を突き止めようとしていますが、自分で gem を作成したことがないため、なかなか進みません。

また見つけたら追記します!

于 2010-12-28T16:54:59.943 に答える
2

数日前にまったく同じ問題が発生しました。私は最終的にそれを解決することができました。よくわかりませんが、とにかく私が何をしたかをお話しします。多分それはあなたを助けるでしょう。

RVMのダウンロードから始めました。まだ使用していない場合は、使用することを強くお勧めします。これは基本的に、Ruby、RoR、および RubyGems を個別に新しくインストールするためのサンドボックスを作成します。実際、複数のインストールを同時に実行して、すぐに別のインストールに切り替えることができます。それは魅力のように機能します。

なぜこれが役立つのですか?OS X のデフォルトの Ruby インストールをいじってはいけません。システムはそれに依存しています。デフォルトの Ruby と RoR のインストールをそのままにして、独自の開発に使用できるように RVM を使用して新しいものを作成するのが最善です。

別の Ruby インストールを作成したら、RoR、RubyGems、および mysql をインストールしただけで機能しました。私が行った正確な手順については、私の質問を参照してください: Rails、MySQL などのインストール.すべてがうまくいかない

繰り返しますが、これで問題が解決するかどうかはわかりません。しかし、それは確かに私にとってはうまくいきました。いずれにせよ、RVM を使用することを強くお勧めします。

于 2010-12-28T14:30:55.810 に答える
2

上記のソリューションでは、(たとえば) TextMate の Rails プラグインでは機能しないことがわかりました。同様のエラーが発生しました (データベース スキーマの取得時)。

それで、ターミナルを開きます:

cd /usr/local/lib
sudo ln -s ../mysql-5.5.8-osx10.6-x86_64/lib/libmysqlclient.16.dylib .

mysql-5.5.8-osx10.6-x86_64を独自のパス (または mysql) に置き換えます。

これにより、lib へのシンボル リンクが作成され、コマンド ラインから rails が実行されるようになり、ruby-on-rails-tmbundleなどの TextMate プラグインも実行されます。

明確にするために、これにより、レールサーバーの起動時に発生するエラーも修正されます。

于 2012-01-11T15:25:58.347 に答える
2

これは通常、mysql をアップグレードするときに発生します。古い mysql ライブラリで構築された、インストール済みの mysql2 gem は、新しいライブラリでは動作しません。再インストールするだけです。

で mysql2 をアンインストールしgem uninstall mysql2ます。次に、それをインストールしますgem install mysql2

于 2016-03-05T08:17:07.200 に答える
1

プロジェクトフォルダcontaingに.rvmrcファイルを作成することで解決しました。

rvm use <yourrubie>

次に、プロジェクトパスを入力します

cd ~/myprojectpath

それから私は走ります

bundle install
于 2011-09-13T13:11:34.787 に答える
1

ターミナルを開き、次を実行します。

export PATH=$PATH:/usr/local/mysql/bin

それはうまくいくはずです。

于 2016-09-16T11:12:12.893 に答える
1

luvlss のコマンドの私のバージョン:

Mac OS X 10.10.5

MySQL 5.6.27

旅客 5.0.21

sudo ln -s /usr/local/mysql-5.6.27-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

私が行ったように、多くの異なるリンクを試している場合は、次の方法でクリーンアップを行ってください。

sudo unlink /usr/lib/libmysqlclient.18.dylib

于 2015-11-13T19:07:28.977 に答える
0

OSX を使用していて、brew を使用して mysql をインストールしている場合は、次のことができます。

brew link mysql

バージョンに問題がある場合 (私の gem には 5.6.25 が必要でしたが、mysql 5.7 を実行していました)、次のことができます。

brew unlink mysql
brew switch mysql 5.6.25
于 2016-02-19T07:01:44.850 に答える