1. ホーム
  2. mysql

[解決済み] rails + MySQL on OSX: ライブラリがロードされない: libmysqlclient.18.dylib

2022-08-24 05:29:43

質問

Ruby(とrails)を始めたばかりです。私は次のようにセットアップを行いました。 http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:ruby gems に従ってセットアップしました。 rvm . 私は、すべてがsqliteでうまく動作しています。

今度は、私がほとんどの開発を行うMySQLに変換してみたいと思います。私のGemfileでは、sqliteをmysql2に置き換えています。

group :development, :test do
#  gem 'sqlite3', '1.3.5'
  gem 'mysql2'
  gem 'rspec-rails', '2.9.0'
end

しかし、MySQLでrails用のDBを作成しようとすると、以下のようになります。

$ rake db:create --trace
rake aborted!
dlopen(/Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
  Reason: image not found - /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle

私は、homebrew経由でMySQLを再インストールすることを推奨する他の投稿を見ました(私のはダウンロード可能なDMG経由でインストールされました)が、私は、他の非rubyプロジェクト用にすでにそこにいくつかの他のデータベースを持っているので、それをしないことを望みます。

Railsが探しているファイルは実際にあります。 /usr/local/mysql/lib/libmysqlclient.18.dylib . Railsにこのファイルの場所を教えるには、どうしたらよいでしょうか。

どのように解決されますか?

~/.bash_profile または ~/.profile ファイルにライブラリのパスを追加することで解決します。

MYSQL=/usr/local/mysql/bin
export PATH=$PATH:$MYSQL
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

それでもうまくいかない場合(私はこれでうまくいきました)。

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

多くのブログで install_name_tool を使っているブログがたくさんありますが、私は OSX Lion を使っているので、これはうまくいきません。

sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/bin/indexer
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/bin/search