mysql_options() - 별도 연결 옵션을 설정하는데 사용될 수 있으며, 연결 시 작동에 영향을 미칠 수 있다. |
|
형태 |
int mysql_options(MYSQL *mysql, enum mysql_option option, const void *argument) |
인수 |
mysql: MYSQL* 핸들 option: 사용자가 설정을 원하는 옵션 argument: 옵션 값. (옵션이 정수라면, 포인터로 가리킨다) |
리턴값 |
성공: 0(Zero). 실패: 알 수 없는 옵션을 사용하면, Non-zero. |
▶ mysql_init() 함수 후에 그리고 mysql_connect() 또는 mysql_real_connect()함수 전에 호출되어야 한다.
mysql_init(); mysql_options() ß mysql_init()와 mysql_connect() 사이에 필요한 횟수만큼 이 루틴을 호출 할 수 있다. mysql_options() … mysql_connect(); |
▶ 일반적으로 자주 사용하는 옵션 몇 가지:
enum 옵션 |
변수 타입 |
기능 |
MYSQL_INIT_COMMAND |
const char * |
접속한 시간을 매 시간 보내는 명령 |
MYSQL_OPT_COMPRESS |
None (use NULL) |
압축된 클라이언트/서버 프로토콜을 사용. |
MYSQL_OPT_CONNECT_TIMEOUT |
unsigned int * |
접속의 타임 아웃 시간(초 단위). |
MYSQL_READ_DEFAULT_FILE |
char * |
my.cnf 로부터 대신에 네임드 옵션 파일에서 옵션을 읽음 |
MYSQL_READ_DEFAULT_GROUP |
char * |
my.cnf의 네임드 그룹 또는 MYSQL_READ_DEFAULT_FILE 로 지정한 파일에서 옵션을 읽음 |
▷ MYSQL_READ_DEFAULT_FILE 또는 MYSQL_READ_DEFAULT_GROUP 을 사용하면,
client 그룹은 항상 읽힌다는 것을 명심하라.
▶ 옵션 파일에서 지정된 그룹은 다음 옵션들을 포함할 수 있다:
옵션 |
설명 |
connect-timeout |
수 초 내에 타임아웃 연결. 리눅스에서 이 타임아웃은 서버로부터 처음 응답을 기다리는데 사용된다. |
compress |
간단한 클라이언트/서버 프로토콜을 사용. |
database |
연결 명령문에 데이터베이스가 지정되어 있지 않았다면, 이 데이터베이스로 연결. |
debug |
디버그 옵션. |
disable-local-infile |
LOAD DATA LOCAL사용이 불가능 |
host |
디폴트 호스트이름. |
init-command |
MySQL 서버로 연결 시 실행하기 위한 명령. 재연결 시 자동으로재실행됨. |
interactive-timeout |
CLIENT_INTERACTIVE 를 mysql_real_connect()함수에 지정하는 것과 같다. 22.2.3.51, "mysql_real_connect()"장 참조 |
local-infile[=(0|1)] |
변수가 없거나 변수가 != 0 라면, LOAD DATA LOCAL사용이 가능하다. |
max_allowed_packet |
패킷 클라이언트 최대 사이즈는 서버로부터 읽을 수 있다. |
multi-results |
다중 명령문 실행 또는 스토어드 프로시져로부터 멀티 결과 셋허용. |
multi-statements |
클라이언트가 싱글 문자열(스트링/.';'로 나누어진) 내에 다중 명령문을 보내도록 허용. |
password |
디폴트 패스워드. |
pipe |
NT 기반에서 MySQL 서버에 연결하기 위해 명명된 파이프 사용. |
protocol={TCP|SOCKET|PIPE|MEMORY} |
서버로 연결 시 사용하는 프로토콜. |
port |
디폴트 포트 넘버. |
return-found-rows |
UPDATE 사용시, 업데이트된 로우들 대신에 검색된 로우들을 리턴하기 위해 mysql_info()함수를 호출. |
shared-memory-base-name=name |
서버로 연결하기 위해 사용되는 공유 메머리 이름(디폴트는"MYSQL"). |
socket |
디폴트 소켓 파일. |
user |
디폴트 사용자. |
[ 예제 ] |
MYSQL mysql; unsigned int timeout = 7; … mysql_init(&mysql); mysql_options(&mysql, MYSQL_OPT_COMPRESS, 0); mysql_options(&mysql, MYSQL_READ_DEFAULT_GROUP, "odbc"); mysql_options(&mysql, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&timeout); if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0)) { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(&mysql)); } … |
이 코드는 클라이언트가 압축된 클라이언트/서버 프로토콜을 사용(MYSQL_OPT_COMPRESS).
my.cnf 파일 내에서 odbc 섹션으로부터 추가적인 옵션을 읽도록 요청(MYSQL_READ_DEFAULT_GROUP).
접속 시간 초과를 7초로 설정(MYSQL_OPT_CONNECT_TIMEOUT).
'API 및 라이브러리 > MySQL C API' 카테고리의 다른 글
mysql_[real_]query() - SQL 쿼리 실행 (0) | 2011.07.12 |
---|---|
MySQL C API - 오류처리 (mysql_errno, mysql_error) (0) | 2011.07.12 |
mysql_real_connect() - MySQL 데이터베이스 연결 (0) | 2011.07.11 |
mysql_config명령을 이용한 MySQL C API 컴파일 (0) | 2011.07.11 |
MySQL C API 데이터 타입 (1) | 2011.07.11 |