我刚刚开始使用Ruby(和rails).我按照http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:ruby gems 进行了设置rvm
.我用sqlite做得很好.
现在我想尝试将事情转换为MySQL,因为这是我开发的大部分内容.在我的Gemfile中,我用mysql2替换了sqlite:
group :development, :test do
# gem 'sqlite3', '1.3.5'
gem 'mysql2'
gem 'rspec-rails', '2.9.0'
end
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在MySQL中为rails创建数据库时,我得到:
$ 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
Run Code Online (Sandbox Code Playgroud)
我已经看到其他帖子建议通过自制软件重新安装MySQL(我的是通过可下载的DMG安装的),但我不想这样做,因为我已经有其他几个非ruby项目的数据库了.
事实上我确实有Rails正在寻找的文件; 它安装在/usr/local/mysql/lib/libmysqlclient.18.dylib
.告诉Rails如何找到它的最佳方法是什么?
我最近重新安装了ruby 2.1.2,因为我想安装一个gem(ruby-debug-ide
)
sudo rvm reinstall 2.1.2 --disable-binary --with-gcc=gcc-4.2
Run Code Online (Sandbox Code Playgroud)
从那以后,bundle exec rails c
由于以下错误,我无法加载我的控制台:
/Users/ohad/.rvm/gems/ruby-2.1.2@aaa/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require': dlopen(/Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle, 9): Library not loaded: @@HOMEBREW_PREFIX@@/opt/readline/lib/libreadline.6.dylib (LoadError)
Referenced from: /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle
Run Code Online (Sandbox Code Playgroud)
试着brew uninstall readline
和brew install --build-from-source readline
它的工作,但并没有解决我的问题.