我使用的是Rails和mysql2宝石。是否有方法在运行命令时获得mysqld服务器版本:
$ mysqld --version
mysqld Ver 5.5.29 for osx10.8 on i386 (Source distribution)我不希望执行shell命令,因为数据库服务器可能运行在另一台服务器上。
发布于 2014-02-21 14:13:25
您可以通过ActiveRecord::Base.connection在rails中获得版本信息。我在这里用我的rails控制台做的。我使用的是rails的旧版本(2.2),因此您的语法可能有所不同。
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"发布于 2014-02-21 14:18:27
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"https://stackoverflow.com/questions/21936467
复制相似问题