본문 바로가기

프로그래밍/mysql

mysql - sqlrelay 설정

반응형

데이터베이스 풀링에 대한 sqlrelay 설치 문서입니다.   
 
 
 

; sqlrelay에 대한 문서가 없어서 설치하고 문서로 남깁니다.

; 참고 링크
; http://www.openphp.com/board/board_center.html?Type=View&tb_name=board_php_study&id=50&start=0&id_no=16
; http://www.phpschool.com/bbs2/inc_view.html?id=6888&code=tnt2&start=0

; 비슷한 sqlb에 대한 한글 문서
; http://www.openphp.com/board/board_center.html?Type=View&tb_name=board_php_study&id=51&start=0&id_no=17


; 설치를 시작할 디렉토리에서 아래 두가지를 받으시고
wget http://unc.dl.sourceforge.net/sourceforge/rudiments/rudiments-0.26.3.tar.gz
wget http://aleron.dl.sourceforge.net/sourceforge/sqlrelay/sqlrelay-0.34.3.tar.gz

tar zxf rudiments-0.26.3.tar.gz
tar zxf sqlrelay-0.34.3.tar.gz

; rudiments 먼저 설치를 합니다.
cd rudiments-0.26.3
./configure
make
make install

sqlrelay 설치
./configure --help

; 위와 같이 하시면 옵션이 나옵니다.

./configure --enable-small-code --enable-mysql-rpath --enable-php-rpath
make
make install

; 디렉토리로 이동합니다.
cd /usr/local/firstworks/
ls

; 환경설정파일을 편집합니다.
vi etc/sqlrelay.conf
; ------------------------------- 여기부터
<?xml version="1.0"?>
<!DOCTYPE instances SYSTEM "sqlrelay.dtd">
<instances>
<instance id="mysqltest" port="9000" socket="/tmp/mysqltest.socket" dbase="mysql" connections="3" maxconnections="5" maxqueuelength="0" growby="1" ttl="60" endofsession="commit" sessiontimeout="600" runasuser="nobody" runasgroup="nobody" cursors="5" authtier="listener" handoff="pass" deniedips="" allowedips="" debug="none">
<users>
<user user="mysqltest" password="mysqltest"/>
</users>
<connections>
<connection connectionid="mysqltest" host="locahost" string="user=testuser;password=testpassword;db=testdb;" metric="1"/>
</connections>
</instance>
</instances>
; -------------------------------- 여기까지
; 로컬 mysql 를 사용하겠다는 것입니다.
; 바꿔줘야 할 부분은 <connection 줄에 host="디비호스트", string="user=유저;password=비밀번호;db=디비;"

; 패스를 잡아주세요.
vi ~/.bash_profile
; PATH 뒤에 "/usr/local/firstworks/bin" 추가해 줍니다.

; sqlrelay를 시작합니다.
sqlr-start -id mysqltest

; 이상없이 동작하면 php.ini 에 extension=sql_relay.so 를 추가합니다.
vi /usr/local/lib/php.ini

; 이제 웹서버를 다시 시작하면 끝입니다.
; phpinfo() 함수에서 Additional Modules 부분에 sql_relay 이 추가되었다면 정상입니다.

; 아래는 php 테스트 코드입니다.
<?php
$con = sqlrcon_alloc("localhost", 9000, "", "mysqltest", "mysqltest", 0, 1);
$cur = sqlrcur_alloc($con);

if(!sqlrcur_sendQuery($cur, "select * from testtable")) {
        echo sqlrcur_errorMessage($cur);
        echo "\n";
}
sqlrcon_endSession($con);
for($row=0; $row<sqlrcur_rowCount($cur); $row++) {
        for($col=0; $col<sqlrcur_colCount($cur); $col++) {
                echo sqlrcur_getField($cur,$row,$col);
                echo ",";
        }
        echo "\n";
}
sqlrcur_free($cur);
sqlrcon_free($con);
?>

; php api 문서는 http://sqlrelay.sourceforge.net/sqlrelay/api/php/doc.html 에서 확인하실 수 있습니다.
; sqlrelay 소스 디렉토리를 보셔도 문서를 보실 수 있습니다. 소프트 링크를 걸어서 웹으로 보셔도 좋겠네요.

반응형

'프로그래밍 > mysql' 카테고리의 다른 글

mysql - 날짜 관련 함수  (0) 2012.07.19
MySQL 5.0.xx 에서 트리거의 특징  (0) 2012.07.19
mysql - split 함수 구현  (0) 2012.07.19
mysql - select data 파일로  (0) 2012.07.19
mysql - rownum 구현  (0) 2012.07.19