12/15/2015

[RUBY] Ruby에서 MySQL 연동하기(DB Connection 및 SQL Query 전송)

아주 간단하고 금방 작성할 수 있는 부분이지만, 항상 그렇듯이 필요할땐 기억이 나지 않는게 코드인 것 같습니다.
짧게 메모해둘까 합니다.

일단 기본적으로 Ruby랑 Mysql은 깔려있어야 합니다.(당연한 이야기)

추가로 gem 을 이용하여 ruby와 mysql 을 연동하는 모듈을 설치할 것이고, 설치 전 라이브러리가 필요한 사항이 있어 먼저 설치해줍니다.

# apt-get install libmysqlclient-dev

apt 패키지나, gem을 이용하여 ruby에서의 mysql 연동 모듈을 설치합니다.

# apt-get install ruby-mysql
# gem install mysql


ruby 쉘에서 require 하여 확인해보면 정상적으로 로드됨을 알 수 있습니다.

# irb
2.1.5 :001 > require 'mysql'
 => true


이제 간단한 코드를 통해 db 연동 부분을 작성합니다. 타 언어에 비해 매우 짧습니다.
(물론 요즘 대부분의 언어들이 간편하지요..)


host = "127.0.0.1";
user = "root";
pw = "YOURPASSWORD";
dbname = "DATABASE_NAME";

# Database Connection
begin
  conn = Mysql.new(host,user,pw,dbname)
rescue Mysql::Error => e
  puts e.errno
  puts e.error
ensure
  con.close if con
end

위 코드에서 핵심은 Mysql.new를 통해 입력받은 인자값으로 connection을 생성하고 이를 통해 db와의 소통부분을 제어하는 것 입니다.
아래 코드에서 연결된 connection(conn)에 query 메소드를 통해 연결된 database로 쿼리를 날릴 수 있습니다.

# Database Query (SELECT 
result = conn.query("select * from #{$db_table}")
result.each_hash { |h| puts h['test_key']}  
conn.close  

Sample code for Ruby&MySQL


host = "127.0.0.1";
user = "root";
pw = "YOURPASSWORD";
dbname = "DATABASE_NAME";

# Database Connection
begin
  conn = Mysql.new(host,user,pw,dbname)
rescue Mysql::Error => e
  puts e.errno
  puts e.error
ensure
  con.close if con
end

# Database Query (SELECT 
result = conn.query("select * from #{$db_table}")
result.each_hash { |h| puts h['test_key']}  
conn.close  



HAHWUL

Security engineer, Gopher and H4cker!

Share: | Coffee Me:

0 개의 댓글:

Post a Comment