2014-02-21 2 views
2

나는 Railsmysql2 gem을 사용하고 있습니다. 데이터베이스 서버가 다른 서버에서 실행 될 수 있기 때문에이 쉘 명령을 실행하지 않으mysql2를 사용하여 mysql2 서버 버전을 결정하십시오. Ruby gem

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

: 명령을 실행으로 mysqld 서버 버전을 얻을 수있는 방법이 있나요.

답변

2

ActiveRecord :: Base.connection을 통해 버전 정보를 얻을 수 있습니다. 여기 내 레일 콘솔에서하고 있습니다. 난 당신의 구문이 다를 수 있도록 레일의 이전 버전 (2.2)를 사용하고 있습니다.

이있어 일단 당신이 원하는 정보, 예를 들어 꺼냅니다 수
irb(main):190: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%'").detect{|field,val| field == "version"}.last 
=> "5.5.34-0ubuntu0.12.04.1" 
+0

좋은 생각 ... 감사합니다! :-) – Abdo

1
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" 
관련 문제