23.8.7.49 mysql_options()
int mysql_options(MYSQL *mysql, enum mysql_option
option, const void *arg)
설명
추가 연결 옵션을 설정하고 연결 동작에 영향을 미치는 데 사용할 수 있습니다. 이 함수를 여러 번 호출하여 여러 옵션을 설정할 수 있습니다.
mysql_init()
의 뒤와 mysql_connect()
또는 mysql_real_connect()
전에 mysql_options()
를 호출합니다.
option
인수는 설정하는 옵션입니다. arg
인수는 그 옵션 값입니다. 옵션이 정수의 경우, arg
인수로 정수 값에 대한 포인터를 지정합니다.
다음 목록에 가능한 옵션 그 효과 및 각 옵션의 arg
의 사용 방법을 보여줍니다. 일부 옵션은 응용 프로그램이 libmysqld
임베디드 서버 라이브러리에 링크되어있는 경우에만 적용되며 libmysqlclient
클라이언트 라이브러리에 링크되어있는 응용 프로그램에 사용되지 않습니다. arg
가 사용되지 않는 것을 나타내는 옵션의 설명에서는 그 값은 관계 없습니다. 관례로 0을 전달합니다.
MYSQL_DEFAULT_AUTH
(인수 형식 :char *
)사용하는 인증 플러그인의 이름.
MYSQL_ENABLE_CLEARTEXT_PLUGIN
(인수 유형 :my_bool *
)mysql_clear_password
평문 인증 플러그인을 활성화합니다. ( 섹션 6.3.8.7 "클라이언트 측의 일반 텍스트 인증 플러그인" 을 참조하십시오.)이 옵션은 MySQL 5.6.7에서 추가되었습니다.MYSQL_INIT_COMMAND
(인수 형식 :char *
)MySQL 서버에 연결할 때 실행하는 SQL 문. 다시 연결이되면 자동으로 다시 실행됩니다.
MYSQL_OPT_BIND
(인수 :char *
)서버에 접속하기위한 네트워크 인터페이스. 이것은 클라이언트 호스트에 여러 네트워크 인터페이스가있는 경우에 사용됩니다. 인수는 호스트 이름 또는 IP 주소 (문자열로 지정)입니다. 이 옵션은 MySQL 5.6.1에서 추가되었습니다.
MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS
(인수 유형 :my_bool *
)클라이언트가 만료 된 암호를 처리 할 수 있는지 여부를 나타냅니다. 자세한 내용은 섹션 6.3.6 "암호 만료 및 샌드 박스 모드" 를 참조하십시오. 이 옵션은 MySQL 5.6.10에서 추가되었다.
MYSQL_OPT_COMPRESS
(인수 : 사용하지 않음)압축 된 클라이언트 / 서버 프로토콜을 사용합니다.
MYSQL_OPT_CONNECT_ATTR_DELETE
(인수 형식 :char *
)키 이름을 지정하면이 옵션은 연결시 서버에 전달되는 현재의 연결 속성 세트에서 키 / 값 쌍을 제거합니다. 인수는이 키를 지정하는 NULL로 끝나는 문자열에 대한 포인터입니다. 기존의 키와 키 이름의 비교는 대소 문자를 구분합니다.
mysql_options4()
함수의 설명MYSQL_OPT_CONNECT_ATTR_ADD
옵션에 대한 설명뿐만 아니라,MYSQL_OPT_CONNECT_ATTR_RESET
옵션의 설명을 참조하십시오. 이 함수의 설명에는 사용 예도 포함되어 있습니다. 이 옵션은 MySQL 5.6.6에서 추가되었습니다.연결 속성은
session_connect_attrs
및session_account_connect_attrs
성능 스키마 테이블을 통해 공개됩니다. 섹션 22.9.8 "성능 스키마 연결 속성 테이블" 을 참조하십시오.MYSQL_OPT_CONNECT_ATTR_RESET
(인수는 사용되지 않습니다)이 옵션은 연결시 서버에 전달되는 현재의 연결 속성 세트를 리셋 (클리어)합니다.
mysql_options4()
함수의 설명MYSQL_OPT_CONNECT_ATTR_ADD
옵션에 대한 설명뿐만 아니라,MYSQL_OPT_CONNECT_ATTR_DELETE
옵션의 설명을 참조하십시오. 이 함수의 설명에는 사용 예도 포함되어 있습니다. 이 옵션은 MySQL 5.6.6에서 추가되었습니다.연결 속성은
session_connect_attrs
및session_account_connect_attrs
성능 스키마 테이블을 통해 공개됩니다. 섹션 22.9.8 "성능 스키마 연결 속성 테이블" 을 참조하십시오.MYSQL_OPT_CONNECT_TIMEOUT
(인수 형식 :unsigned int *
)초 연결 시간.
MYSQL_OPT_GUESS_CONNECTION
(인수는 사용되지 않습니다)libmysqld
임베디드 서버 라이브러리에 링크 된 어플리케이션의 경우, 이렇게하면 라이브러리는 임베디드 서버를 사용하거나 원격 서버를 사용하는지 알 수 있습니다. "추측"은 호스트 이름이 설정되어 있고,localhost
가 아닌 경우 원격 서버를 사용하는 것을 의미합니다. 이 동작은 기본입니다.MYSQL_OPT_USE_EMBEDDED_CONNECTION
및MYSQL_OPT_USE_REMOTE_CONNECTION
를 사용하여 그것을 무시할 수 있습니다. 이 옵션은libmysqlclient
클라이언트 라이브러리에 링크 된 응용 프로그램에 대해서는 무시됩니다.MYSQL_OPT_LOCAL_INFILE
(인수 형식 :unsigned int
에 옵션의 포인터)포인터가 지정되어 있지 않거나 포인터가 0이 아닌 값을 가지는
unsigned int
를 가리키는 경우,LOAD LOCAL INFILE
명령문이 활성화됩니다.MYSQL_OPT_NAMED_PIPE
(인수 : 사용되지 않습니다)MySQL 서버가 명명 된 파이프 연결을 허용하는 경우 Windows 서버에 연결하기 위해 명명 된 파이프를 사용합니다.
MYSQL_OPT_PROTOCOL
(인수 형식 :unsigned int *
)사용하는 프로토콜의 종류.
mysql.h
에 정의되어있는mysql_protocol_type
열거 형 값 중 하나를 지정합니다.MYSQL_OPT_READ_TIMEOUT
(인수 형식 :unsigned int *
)서버에서 읽기 시도 별 초 단위로 시간 제한. 필요한 경우 재 시도가 있기 때문에 실제 총 제한 시간 값은 옵션 값의 3 배입니다. 10 분의 TCP / IP
Close_Wait_Timeout
값보다 빨리 잃어버린 연결을 감지 할 수 있도록 값을 설정할 수 있습니다.이 시간의 구현은 모든 플랫폼에서 사용할 수있는 것은 아니다 메커니즘을 사용하고 있습니다. 이러한 플랫폼에서 읽기 호출을 실행하는 클라이언트가 특정 환경에서 제한없이 대기 할 수 있습니다. 예를 들어, 서버가 "디스크 공간 부족"상황이 지워질 때까지 대기하고 있기 때문에 응답하지 않으면 클라이언트는 제한하지 않을 수 있습니다.
MYSQL_OPT_RECONNECT
(인수 유형 :my_bool *
)연결이 끊어진 것으로 감지 된 경우 서버에 자동 재 연결을 활성화하거나 비활성화합니다. 다시 연결은 기본적으로 해제되지만이 옵션은 명시 적으로 다시 연결 동작을 설정하는 방법을 제공합니다.
MYSQL_OPT_SSL_CA
(인수 형식 :char *
)신뢰할 수있는 SSL CA의 목록이 들어있는 파일의 경로. 이 옵션은 MySQL 5.6.3에서 추가되었습니다.
MYSQL_OPT_SSL_CAPATH
(인수 형식 :char *
)PEM 형식의 신뢰할 수있는 SSL CA 인증서를 저장할 디렉토리 경로. 이 옵션은 MySQL 5.6.3에서 추가되었습니다.
MYSQL_OPT_SSL_CERT
(인수 형식 :char *
)보안 연결을 설정하는 데 사용하는 SSL 인증서 파일의 이름입니다. 이 옵션은 MySQL 5.6.3에서 추가되었습니다.
MYSQL_OPT_SSL_CIPHER
(인수 형식 :char *
)SSL 암호화에 사용하는 허용되는 암호의 목록입니다. 이 옵션은 MySQL 5.6.3에서 추가되었습니다.
MYSQL_OPT_SSL_CRL
(인수 형식 :char *
)PEM 형식의 인증서 해지 목록을 포함하는 파일의 경로. 이 옵션은 MySQL 5.6.3에서 추가되었습니다.
MYSQL_OPT_SSL_CRLPATH
(인수 형식 :char *
)PEM 형식의 인증서 해지 목록을 포함하는 파일을 저장하는 디렉토리 경로. 이 옵션은 MySQL 5.6.3에서 추가되었습니다.
MYSQL_OPT_SSL_KEY
(인수 형식 :char *
)보안 연결을 설정하는 데 사용하는 SSL 키 파일의 이름. 이 옵션은 MySQL 5.6.3에서 추가되었습니다.
MYSQL_OPT_SSL_VERIFY_SERVER_CERT
(인수 유형 :my_bool *
)서버 인증서의 일반 서버 이름 값을 서버에 연결할 때 사용되는 호스트 이름에 대한 검증을 유효 또는 무효로합니다. 불일치가있을 경우 연결이 거부됩니다. 이 기능은 중간자 공격을 방지하기 위해 사용할 수 있습니다. 검증은 기본적으로 비활성화됩니다.
MYSQL_OPT_USE_EMBEDDED_CONNECTION
(인수 : 사용되지 않습니다)libmysqld
임베디드 서버 라이브러리에 링크 된 어플리케이션의 경우, 이는 연결에 임베디드 서버의 사용을 강제됩니다. 이 옵션은libmysqlclient
클라이언트 라이브러리에 링크 된 응용 프로그램에 대해서는 무시됩니다.MYSQL_OPT_USE_REMOTE_CONNECTION
(인수 : 사용되지 않습니다)libmysqld
임베디드 서버 라이브러리에 링크 된 어플리케이션의 경우, 이는 연결에 원격 서버의 사용을 강제됩니다. 이 옵션은libmysqlclient
클라이언트 라이브러리에 링크 된 응용 프로그램에 대해서는 무시됩니다.MYSQL_OPT_USE_RESULT
(인수 : 사용되지 않습니다)이 옵션은 사용되지 않습니다.
MYSQL_OPT_WRITE_TIMEOUT
(인수 형식 :unsigned int *
)서버에 대한 쓰기 시도 별 초 단위로 시간 제한. 필요한 경우 재 시도가 있기 때문에 실제 총 제한 시간 값은 옵션 값의 두 배입니다.
MYSQL_PLUGIN_DIR
(인수 형식 :char *
)클라이언트 플러그인을 검색하는 디렉토리.
MYSQL_READ_DEFAULT_FILE
(인수 형식 :char *
)my.cnf
대신에 지정된 옵션 파일에서 옵션을 읽습니다.MYSQL_READ_DEFAULT_GROUP
(인수 형식 :char *
)my.cnf
의 지정된 그룹 또는MYSQL_READ_DEFAULT_FILE
의해 지정된 파일에서 옵션을 읽습니다.MYSQL_REPORT_DATA_TRUNCATION
(인수 유형 :my_bool *
)MYSQL_BIND
구조의error
멤버를 사용하여 준비된 문의 데이터 절단 오류보고를 활성화 또는 비활성화합니다. (기본값 : 활성화)MYSQL_SECURE_AUTH
(인수 유형 :my_bool *
)MySQL 4.1.1 이후에 사용되는 암호 해시를 지원하지 않는 서버에 연결할지 여부. MySQL 5.6.7 이후,이 옵션은 기본적으로 활성화되어 있습니다.
MYSQL_SERVER_PUBLIC_KEY
(인수 형식 :char *
)서버 RSA 공개 키가 들어있는 파일의 경로 이름. 파일은 PEM 형식이어야합니다. 공개 키는
sha256_password
플러그인에 의해 인증 계정을 사용하여 서버에 연결을 만들기위한 클라이언트 암호 RSA 암호화에 사용됩니다. 이 옵션은 플러그인에 의해 인증하지 않는 클라이언트 계정에 대해서는 무시됩니다. 또한 클라이언트가 SSL 연결을 사용하여 서버에 연결하는 경우와 같이 암호 암호화가 필요하지 않은 경우도 무시됩니다.서버는 필요에 따라 공개 키를 클라이언트로 전송하기 위해 RSA 암호의 암호화가 이루어질 수 있도록이 옵션을 사용할 필요는 없습니다. 이렇게하면 서버는 열쇠를 보낼 필요가 없기 때문에 효율이 향상됩니다.
RSA 공개 키의 취득 방법을 포함하여
sha256_password
플러그인 사용에 대한 추가 설명은 섹션 6.3.8.4 "SHA-256 인증 플러그인" 을 참조하십시오.이 옵션은 MySQL 5.6.6에서 추가되었습니다.
MYSQL_SET_CHARSET_DIR
(인수 형식 :char *
)문자 집합 정의 파일을 포함하는 디렉토리의 경로 이름.
MYSQL_SET_CHARSET_NAME
(인수 형식 :char *
)기본 문자 세트로 사용하는 문자 세트의 이름입니다. 인수를
MYSQL_AUTODETECT_CHARSET_NAME
하여 운영 체제 설정에 따라 문자 집합을 자동으로 검색 할 수 있습니다 ( 섹션 10.1.4 "연결 문자 집합 및 정렬 순서" 를 참조하십시오).MYSQL_SET_CLIENT_IP
(인수 형식 :char *
)libmysqld
임베디드 서버 라이브러리에 링크 된 어플리케이션의 경우 (libmysqld
가 인증 지원으로 컴파일되는 경우) 이것은 사용자가 인증을 위해 지정된 IP 주소 (문자열로 지정)에서 연결 것으로 간주되는 것을 의미합니다. 이 옵션은libmysqlclient
클라이언트 라이브러리에 링크 된 응용 프로그램에 대해서는 무시됩니다.MYSQL_SHARED_MEMORY_BASE_NAME
(인수 형식 :char *
)서버가 공유 메모리 연결을 지원하는 경우 Windows에서 서버와의 통신을위한 공유 메모리 객체의 이름입니다. 연결된 mysqld 서버에 사용되는
--shared-memory-base-name
옵션과 동일한 값을 지정합니다.
MYSQL_READ_DEFAULT_FILE
또는 MYSQL_READ_DEFAULT_GROUP
를 사용하는 경우, client
그룹이 항상 읽습니다.
옵션 파일에서 지정된 그룹은 다음 옵션을 포함 할 수 있습니다.
옵션 | 설명 |
---|---|
character-sets-dir= | 문자 세트가 설치되어있는 디렉토리. |
compress | 압축 된 클라이언트 / 서버 프로토콜을 사용합니다. |
connect-timeout= | 초 연결 시간. Linux에서는이 시간 제한은 서버에서 첫 번째 답변을 기다리는 경우에도 사용합니다. |
database= | 연결 명령에 데이터베이스가 지정되어 있지 않은 경우이 데이터베이스에 연결합니다. |
debug | 디버깅 옵션. |
default-character-set= | 사용되는 기본 문자 세트. |
disable-local-infile | LOAD DATA LOCAL 의 사용을 해제합니다. |
enable-cleartext-plugin | mysql_clear_password 평문 인증 플러그인을 활성화합니다. MySQL 5.6.7에서 추가되었습니다. |
host= | 기본 호스트 이름. |
init-command= | MySQL 서버에 연결할 때 실행할 명령. 다시 연결이되면 자동으로 다시 실행됩니다. |
interactive-timeout= | mysql_real_connect() 에 CLIENT_INTERACTIVE 을 지정하는 경우와 같다. 섹션 23.8.7.53 "mysql_real_connect ()" 를 참조하십시오. |
local-infile[={0|1}] | 인수가 없거나 제로 이외의 인수의 경우, LOAD DATA LOCAL 의 사용을 활성화합니다. 그렇지 않으면 비활성화합니다. |
max_allowed_packet= | 클라이언트가 서버에서 읽을 수있는 패킷의 최대 크기. |
multi-queries , multi-results | 다중 문 실행이나 저장 프로 시저에서 여러 결과 세트를 가능하게합니다. |
multi-statements | 클라이언트가 여러 문을 단일 문자열 ( " ; "으로 구분 된)으로 보낼 수 있도록합니다. |
password= | 기본 암호. |
pipe | Windows에서 MySQL 서버에 연결하기 위해 명명 된 파이프를 사용합니다. |
port= | 기본 포트 번호. |
protocol={TCP|SOCKET|PIPE|MEMORY} | 서버에 연결할 때 사용하는 프로토콜입니다. |
return-found-rows | UPDATE 를 사용하는 경우 업데이트 된 행 대신 찾은 행을 반환하도록 mysql_info() 에 전달한다. |
shared-memory-base-name= | 서버에 연결하는 데 사용하는 공유 메모리 이름. |
socket= | 기본 소켓 파일. |
ssl-ca= | 인증 기관 파일. |
ssl-capath= | 인증 기관 디렉토리. |
ssl-cert= | 인증서 파일. |
ssl-cipher= | 허용되는 SSL 암호화. |
ssl-key= | 키 파일. |
timeout= | connect-timeout 과 비슷합니다. |
user | 기본 사용자. |
timeout
은 connect-timeout
에 의해 대체되었습니다 만, timeout
은 하위 호환성을 위해 MySQL 5.6에서 계속 지원되고 있습니다.
MySQL 프로그램에서 사용되는 옵션 파일에 대한 자세한 내용은 섹션 4.2.6 "옵션 파일 사용" 을 참조하십시오.
반환 값
성공의 경우는 제로. 알 수없는 옵션을 지정했을 경우 0이 아닌.
Example
다음 mysql_options()
호출은 클라이언트 / 서버 프로토콜에서 압축 사용을 요구하고 옵션 파일의 [odbc]
그룹에서 옵션을 읽도록 트랜잭션 자동 커밋 모드를 해제합니다.
MYSQL mysql; mysql_init(&mysql); mysql_options(&mysql,MYSQL_OPT_COMPRESS,0); mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc"); mysql_options(&mysql,MYSQL_INIT_COMMAND,"SET autocommit=0"); 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)); }
이 코드는 클라이언트가 압축 된 클라이언트 / 서버 프로토콜을 사용하고 my.cnf
파일의 odbc
섹션에서 추가 옵션을 읽습니다.