私はしばらくの間これに苦労してきました。
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は正常に起動します。しかし、それは理想的ではありませんか?
私はグーグルが私に与えることができるすべてを試しました!助けていただければ幸いです。
私はこれらの答えのいずれかを私のために機能させることはできませんでしたが、これは私がそれを私のために機能させるために使用したコマンドです。これにより、mysqlを更新するたびにinstall_name_toolを使用する必要がなくなります。
Sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
結局、これを解決しました!
RVMでRubyおよびRailsを再インストールしました。 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
これが他の人の助けになることを願っています!
この修正は私にとって非常にうまくいきました。
以下を〜/ .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/ =
私にとって、これはmysqlをアップグレードしたがmysql2 gemを更新していなかったからです。gemを再インストールすると修正されます...
gem pristine mysql2
同じ問題があります。 libmysqlclientライブラリが見つからないようです。私のために働いた一時的な修正は次のとおりです:
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
Configがロードパスを指定している場所や設定されている内容がわかりませんが、mysqlインストールが含まれていないようです。より恒久的な解決策が見つかった場合は、再度投稿します。
編集:実際には this fixは問題をより正確に解決しているようです。
以下を~/.bash_profile
に追加します。
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
これは私のために働いた
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
次の行は私のために働く。 Mac 10.7.2を使用しています。
Sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
この問題に出くわしました。 mysql2 gemをアンインストールして再インストールするだけです。これが他の人にも役立つことを願っています
これは私のために働いた方法です:
以下のコマンドを実行しました
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、osx10.6(i386)、readline 5.1を使用
$ Ruby -v
Ruby 1.9.2p180(2011-02-18リビジョン30909)[x86_64-darwin10.7.0]
これが誰かを助けることを願っています。
bundle install mysql --force
が助けてくれました。 brew uninstall mysql
の結果としてなくなった依存関係を再インストールしました。
Djangoを使用しているときにこの問題が発生しました。brew
name__を使用して多くのオープンソースプログラムをインストールし、brew
name__を使用してmysql
name__をインストールしたため、
Sudo ln -s /usr/local/Cellar/mysql/5.5.20/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
ライブラリのバージョンに必ず置き換えてください!
現在のプロジェクトのgemsetを削除して再作成し、バンドルインストールを再実行することで、この問題を解決しました。 mysqlの新しいバージョンをインストールしたことが原因だと思います。
こんにちは、推奨リンクから私のために働いた from Fredy Andersen
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のバージョンに変更する必要がありました、ありがとう
ありがとう、オガポ!そのエイリアスのエクスポートは私のために働いたので、リンクをたどりました。私の場合、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)
上記のソリューションでは、(たとえば)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。
明確にするために、これはRailsサーバーの起動時に表示されるエラーも修正します。
ジョンティ、私もこれに苦労しています。
ここに手がかりがあると思います:
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を自分で作成したことがないので時間がかかります。
もっと見つけたらもっと投稿します!
数日前にまったく同じ問題が発生しました。私は最終的にそれを解決することができました。どのようにすればいいのかよく分かりませんが、とにかく私がしたことをお話しします。たぶんそれはあなたを助けるでしょう。
私はRVMをダウンロードすることから始めました。まだ使用していない場合は、使用することを強くお勧めします。基本的に、Ruby、RoR、RubyGemsの新しい個別インストール用のサンドボックスを作成します。実際、複数のインストールを同時に実行して、すぐに相互に切り替えることができます。それは魅力のように機能します。
なぜこれが便利なのですか? OS XのデフォルトのRubyインストールを台無しにしないでください。システムはそれに依存します。デフォルトのRubyおよびRoRインストールをそのままにして、独自の開発に使用できるRVMを使用して新しいものを作成するのが最善です。
個別のRubyインストールを作成したら、RoR、RubyGems、mysqlをインストールしただけで機能しました。私が行った正確な手順については、私の質問を参照してください: Rails、MySQLなどをインストールすると、すべてがうまくいきません
繰り返しますが、これが問題を解決するかどうかはわかりません。しかし、それは確かに私のためのトリックを行いました、とにかくRVMを使用することは非常にお勧めです。
これは通常、mysqlをアップグレードするときに発生します。古いmysqlライブラリに基づいて構築されたインストール済みmysql2 gemは、新しいライブラリでは機能しません。再インストールするだけです。
gem uninstall mysql2
でmysql2をアンインストールします。次に、gem install mysql2
でインストールします
次のプロジェクトフォルダーに.rvmrcファイルを作成して解決しました。
rvm use <yourrubie>
次に、プロジェクトのパスを入力します
cd ~/myprojectpath
それから私は走る
bundle install
Luvlssのコマンドの私のバージョン:
Mac OSX 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
私にとっては、mysqlを手動でアンインストールする必要がありました
brew uninstall mysql
rm -rf /usr/local/var/mysql
brew install mysql
Terminalを開き、次を実行します。
export PATH=$PATH:/usr/local/mysql/bin
動作するはずです。
OSXを使用していて、brewを使用してmysqlをインストールした場合、次のことができます。
brew link mysql
バージョンに問題がある場合(gemに5.6.25が必要なときにmysql 5.7を実行していました)、次のことができます。
brew unlink mysql
brew switch mysql 5.6.25