ruby-on-rails - 使用 mysql2 Ruby gem 确定 mysql2 服务器版本

标签 ruby-on-rails ruby mysql2

我正在使用 Railsmysql2 gem。有没有办法在运行命令时获取 mysqld 服务器版本:

$ mysqld --version
mysqld  Ver 5.5.29 for osx10.8 on i386 (Source distribution)

我不想执行 shell 命令,因为数据库服务器可能正在另一台服务器上运行。

最佳答案

您可以通过 ActiveRecord::Base.connection 在 rails 中获取版本信息。我正在我的 Rails 控制台中执行此操作。我使用的是旧版本 (2.2) 的 Rails,因此语法可能与您的不同。

irb(main):001:0> ActiveRecord::Base.connection.select_rows(
                   "SHOW VARIABLES LIKE '%version%'"
                 )
=> [
    ["innodb_version", "5.5.34"],
    ["protocol_version", "10"],
    ["slave_type_conversions", ""],
    ["version", "5.5.34-0ubuntu0.12.04.1"],
    ["version_comment", "(Ubuntu)"],
    ["version_compile_machine", "x86_64"],
    ["version_compile_os", "debian-linux-gnu"]
   ]

一旦你有了这个,你就可以提取你想要的信息,例如:

version = ActiveRecord::Base.connection
                            .select_rows("SHOW VARIABLES LIKE 'version'")
                            .last.last
=> "5.5.34-0ubuntu0.12.04.1"

关于ruby-on-rails - 使用 mysql2 Ruby gem 确定 mysql2 服务器版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21936467/

相关文章:

css - TinyMCE 代码缩进问题

ruby - 变量方法调用 - 正确的 Ruby 语法?

ruby-on-rails - 修改 Rails 助手以添加 HTML 类

ruby-on-rails - 移动mime类型可以在Rails中退回到 “html”吗?

ruby-on-rails - 如何使用 GraphQL 获取所有用户模型

ruby-on-rails - 调用 arerel 操作的动态方法

MySql 在选择记录时更改日期

ruby - 安装——mysql2 gem 在使用 rbenv 和 Ruby 1.8.7 的 OSX Mavericks 上失败

mysql - 如何使用 ruby​​ (mysql2 gem) 在 MySQL 5.5 中存储 4 字节字符

html - 将 image_tag 压缩为一个