首页 > 解决方案 > 尝试使用 db:create 时出现“错误:Rake 中止”

问题描述

我是 Ruby on rails 的新手,所以我按照说明从 gorails.com 安装 ROR,使用 mysql 作为数据库。(也尝试过使用 SQLite3,但那里也出现错误...?)https://gorails.com/setup/osx/10.14-mojave

一切都很顺利,直到我不得不使用以下功能,

rake db:create

当我在我的 ROR 项目中运行这个命令时,我得到这个 rake aborted 错误。使用我的终端的以下输出。

rake aborted!
LoadError: dlopen(/Users/username/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/mysql2-0.5.2/lib/mysql2/mysql2.bundle, 9): Library not loaded: libssl.1.0.0.dylib
  Referenced from: /Users/username/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/mysql2-0.5.2/lib/mysql2/mysql2.bundle
  Reason: image not found - /Users/username/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/mysql2-0.5.2/lib/mysql2/mysql2.bundle
/Users/username/Desktop/myapp3/config/application.rb:7:in `<top (required)>'
/Users/username/Desktop/myapp3/Rakefile:4:in `require_relative'
/Users/username/Desktop/myapp3/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

我试图检查gemfile。

标签: ruby-on-railsruby-on-rails-5rake

解决方案


我使用@Denny Mueller 和@Umar Khan 的答案来解决这个问题。我没有意识到这是 openssl 的问题,但该问题的解决方案与Michael Erb在此问题上提供的答案相同。

解决方案

事实证明,openssl 是仅限于小桶的,这意味着它没有符号链接到 /usr/local,因为 Apple 已弃用 OpenSSL 以支持其自己的库。首先,卸载mysql2。

gem uninstall mysql2

然后重新安装 OpenSSL

brew reinstall openssl

注意输出包含:

LDFLAGS:  -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include

然后我们可以再次安装mysql2

gem install mysql2 -v 0.4.10 -- --with-cppflags=-`I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib`

推荐阅读