首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mysql2 Ruby确定mysql2服务器版本

使用mysql2 Ruby确定mysql2服务器版本
EN

Stack Overflow用户
提问于 2014-02-21 13:57:57
回答 2查看 4.7K关注 0票数 7

我使用的是Railsmysql2宝石。是否有方法在运行命令时获得mysqld服务器版本:

代码语言:javascript
复制
$ mysqld --version
mysqld  Ver 5.5.29 for osx10.8 on i386 (Source distribution)

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-21 14:13:25

您可以通过ActiveRecord::Base.connection在rails中获得版本信息。我在这里用我的rails控制台做的。我使用的是rails的旧版本(2.2),因此您的语法可能有所不同。

代码语言:javascript
复制
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"]
   ]

一旦你得到了这个,你就可以拿出你想要的信息,例如:

代码语言:javascript
复制
version = ActiveRecord::Base.connection
                            .select_rows("SHOW VARIABLES LIKE 'version'")
                            .last.last
=> "5.5.34-0ubuntu0.12.04.1"
票数 9
EN

Stack Overflow用户

发布于 2014-02-21 14:18:27

代码语言:javascript
复制
def mysql_version
  mysql_version_sql = 'SHOW VARIABLES WHERE Variable_name = "version"'
  ActiveRecord::Base.connection.select_rows(mysql_version_sql)[0][1]
end

mysql_version #=> "5.5.35-0+wheezy1"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21936467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档