기본적인 사항은 http://samurai-mysql.blogspot.kr/2009/03/settingup-dbt-2.html 참조
1. DBT-2를 컴파일하기 위해서는 MySQL의 개발자 라이브러리가 필요하다. libmysqlclient-dev를 설치하자.
sudo apt-get install libmysqlclient-dev
2. configure에서 --with-mysql 옵션만 주면 library나 include는 알아서 처리해줌.
3. make를 했을때, mysql 함수 관련으로 undefined reference가 뜬다면
1) 제대로 mysql 개발관련 library를 설치했는지 우선 확인해보자.
locate libmysqlclient
를 쳤을경우 설치된 libmysqlclient의 경로가 잡혀야 한다.
2) 분명히 제대로 설치했는데도 불구하고 undefined reference가 계속된다면 clang++ 로 컴파일을 진행하자.
sudo apt-get install clang++
그리고 dbt2 폴더 및 하위 src 폴더의 Makefile에서 CC, CPP 옵션이 gcc로 되어있는데 이를 clang++로 바꿔주자.
이럴 경우 (사실 gcc로는 안해봤지만) dbt2의 소스 코드중 문법적으로 틀린 부분이 발생하기 때문에 바꿔줘야 한다.
src/_socket.c 파일 중
101번째 줄:
data += received;
src/transaction_test.c 파일 중
195번째 줄:
if (process_transaction(transaction, &dbc,
(void *) &transaction_data) != OK) {
disconnect_from_db(&dbc);
printf("transaction failed\n");
return 11;
}
->
if (process_transaction(transaction, &dbc,
&transaction_data) != OK) {
disconnect_from_db(&dbc);
printf("transaction failed\n");
return 11;
}
이렇게 수정해 주면 컴파일이 끝난다.
*) build_db.sh 에서 MySQL이 data 파일을 로드하지 못한다면, LOCAL 옵션을 줘야한다. 설명에는 -l 을 적어주면 알아서 되게 되있는데, 막상 -l 을 적으면 인식을 못해서 그냥 수동으로 파일 로드부분에 LOCAL을 적어줬다. LOCAL 옵션의 경우 보안 문제로 인해 금지되고 있으므로, 이를 우선적으로 활성화 시켜야 한다.
**) build_db.sh, start_db.sh, stop_db.sh, run_workload.sh 등 쉘 스크립트에서 MySQL의 socket 파일과 pid 파일을 /tmp/mysql.sock와 run/~~어쩌구 경로로 '직접' 지정해놨다. 나의 경우 /var/run/mysqld/mysqld.sock 이 mysql의 sock 파일의 경로이기 때문에 전부 바꿔주고나서야 제대로 실행이 됐다.
'Programming > 기타' 카테고리의 다른 글
Performance Evaluation of In-Memory Computing on Scale-Up and Scale-Out Cluster (0) | 2016.08.06 |
---|---|
HiBench 5.0 간략 설명 (0) | 2016.01.24 |
[Android]CPU의 가능한 Hz, mode와 현재 상태 구하기 (0) | 2013.03.11 |
[Android]어플리케이션이 내부 미디어플레이어를 이용할 때 네트워크 사용량 측정법? (0) | 2013.03.09 |
[Android] Traffic Stats Class (0) | 2013.03.08 |