【问题标题】:Rails + Ubuntu + MySQL = ErrorRails + Ubuntu + MySQL = 错误
【发布时间】:2014-01-19 04:42:07
【问题描述】:

我在 Ubuntu 12.04 上安装了 XAMPP,一切正常。 我也在 PostgreSQL 中使用 Rails 有一段时间了,它也运行良好。

今天,我尝试使用带有mysql2 gem 的mysql 创建一个新应用程序,并在运行rake db:create 时出错。

我首先检查了关于 SO 的其他 Rails/MySQL 问题,然后会说:

  1. MySQL 正在运行
  2. 使用mysql2gem
  3. 数据库配置看起来正确(对我来说)
  4. database.yml 使用 socket: /opt/lampp/var/mysql/mysql.sock

错误:

/opt/lampp/lib/libmysqlclient.so.18: symbol SSL_accept, version OPENSSL_1.0.1 not defined in file libssl.so.1.0.0 with link time reference - /home/wwc/.rvm/gems/ruby-2.0.0-p353/extensions/x86_64-linux/2.0.0/mysql2-0.3.14/mysql2/mysql2.so
/home/wwc/.rvm/gems/ruby-2.0.0-p353/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `require'
/home/wwc/.rvm/gems/ruby-2.0.0-p353/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `<top (required)>'
/home/wwc/.rvm/gems/ruby-2.0.0-p353@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
/home/wwc/.rvm/gems/ruby-2.0.0-p353@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
/home/wwc/.rvm/gems/ruby-2.0.0-p353@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
/home/wwc/.rvm/gems/ruby-2.0.0-p353@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
/home/wwc/.rvm/gems/ruby-2.0.0-p353@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
/home/wwc/.rvm/gems/ruby-2.0.0-p353@global/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
/home/wwc/.rvm/gems/ruby-2.0.0-p353@global/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
/media/fat64/work/_active/josephzidell_rails/config/application.rb:7:in `<top (required)>'
/media/fat64/work/_active/josephzidell_rails/Rakefile:4:in `require'
/media/fat64/work/_active/josephzidell_rails/Rakefile:4:in `<top (required)>'
/home/wwc/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `eval'
/home/wwc/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `<main>'

【问题讨论】:

  • 您是否安装了 ssl 库?
  • 不确定。如果不是,命令是什么?

标签: mysql ruby-on-rails ubuntu-12.04


【解决方案1】:

您可以尝试使用以下方法安装 SSL 库:

apt-get install libssl-dev

您可以使用以下方式检查它的安装路径:

apt-file list libssl-dev

您可能需要先安装 apt-file,方法是运行:

sudo apt-get install apt-file
apt-file update

【讨论】:

  • MattW,感谢您的帮助。 libssl-dev 已安装。
【解决方案2】:

Ruby 2.0.0 遇到 OpenSSL 1.0.1f 问题

检查How can I ensure that Ruby uses an OpenSSL not vulnerable to Heartbleed?,您会发现您的 Ruby 的 OpenSSL 库不是最新的

按照这些命令(信用:https://coderwall.com/p/tptocq) rvm pkg 安装 openssl rvm 安装 2.0.0 \ --with-openssl-dir=$HOME/.rvm/usr\ --verify-downloads 1

您机器上新安装的 Ruby 2.0.0 将获得最终的 OpenSSL 版本 (1.0.1g),该版本也针对 Heart Bleed 进行了修补。

【讨论】:

    猜你喜欢
    • 2011-11-04
    • 2014-04-14
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多