RubyからMySQLへ接続する場合には幾つかのライブラリがあるようですが、今回はMySql2というネイティブのlibmysqlclientを利用してやったみたのでメモ
以下のライブラリを使ってMySQLへ接続したときのメモ
環境
- ruby 2.0.0p648
- MySQL5.6をローカルにインストール済み
- Mysql2は0.4.4を利用
Mysql2インストール
Mysql2ではlibmysqlclinetを使っているようなのでライブラリを事前にインストール
$sudo yum install mysql56-devel
これもインストールの必要アリだった。
$sudo yum -y install ruby-devel
まだダメだった。
しまった、ネイティブなのでgccとかその辺りをインストールしないといけない
$sudo yum groupinstall "Development Tools"
やっとでOK
$gem install mysql2
使ってみた
普通にselectしてみる。
今回はUnixドメインソケットを利用
select.rb
require 'mysql2'
client = Mysql2::Client.new(:socket => '/var/lib/mysql/mysql.sock', :username => 'testuser', :password => 'testtest', :encoding => 'utf8', :database => 'testdb')
results = client.query('select * from t1')
results.each do |row|
puts row # {"id"=>1, "dep"=>1, "name"=>"hoge"}
end
できた。
PreparedStatementもサポートしているようなので使ってみる
select.rb
require 'mysql2'
client = Mysql2::Client.new(:socket => '/var/lib/mysql/mysql.sock', :username => 'testuser', :password => 'testtest', :encoding => 'utf8', :database => 'testdb')
statement = client.prepare('select * from t1 where id = ?')
results = statement.execute(1)
results.each do |row|
puts row # {"id"=>1, "dep"=>1, "name"=>"hoge"}
end
簡単。
他の使い方はREADMEを見れば良さそう。