我正在使用 Rails
和 mysql2
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/