• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 1. MySQL Connector / ODBC
    2. MySQL Connector/Net
    3. MySQL Connector/J
    4. MySQL Connector/C++
    5. MySQL Connector/C
    6. MySQL Connector/Python
    7. libmysqld, the Embedded MySQL Server Library
    8. MySQL C API
    1. MySQL C API 구현
    2. MySQL Server MySQL Connector/C 동시 설치
    3. C API 클라이언트 프로그램 예제
    4. Building and Running C API Client Programs
    5. C API Data 구조
    6. C API Function 개요
    7. C API Function 설명
    8. C API Prepared Statements
    9. C API Prepared Statement Data 구조
    10. C API Prepared Statement 함수 개요
    11. C API Prepared Statement 함수 설명
    12. C API Threaded 함수 설명
    13. C API 임베디드 서버 함수 설명
    14. C API Client Plugin 함수
    15. C API를 사용하는 경우 일반적인 질문과 문제
    16. 자동 재 연결 동작 제어
    17. 여러 명령문 실행 C API 지원
    18. C API Prepared Statement 문제
    19. C API Prepared Statement date 및 time 값 처리
    20. C API의 Prepared CALL Statements 지원
    9. MySQL PHP API
    10. MySQL Perl API
    11. MySQL Python API
    12. MySQL Ruby APIs
    13. MySQL Tcl API
    14. MySQL Eiffel Wrapper
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

23.8.1 MySQL C API 구현

MySQL C API는 C로 작성된 클라이언트 응용 프로그램이 MySQL 서버와의 통신에 사용할 수있는 C 기반의 API입니다. 클라이언트 프로그램은 컴파일시에 C API 헤더를 참조 링크시 C API 라이브러리 파일에 링크합니다. 라이브러리는 응용 프로그램이 서버와 어떻게 의사 소통을 의도하는지에 따라 두 가지 버전으로 제공되고 있습니다.

  • libmysqlclient : 독립형 서버 프로세스의 클라이언트로 네트워크 연결을 통해 통신하는 응용 프로그램에서 사용되는 라이브러리 클라이언트 버전.

  • libmysqld : 응용 프로그램 자체에 내장 MySQL 서버를 포함하는 것을 목적으로 한 응용 프로그램에서 사용되는 라이브러리의 임베디드 서버 버전. 응용 프로그램은 자체 사설 서버 인스턴스와 통신합니다.

두 라이브러리도 같은 인터페이스를 가지고 있습니다. C API 호출에 대한 응용 프로그램은 임베디드 서버와 통신하는 동일한 방식으로 독립형 서버와 통신합니다. 특정 클라이언트를 구축 할 때 libmysqlclient 에 링크하거나 libmysqld 에 링크하는 여부에 따라 독립형 또는 임베디드 서버와 통신하도록 만들 수 있습니다.

C API 클라이언트 프로그램의 구축에 필요한 C API 헤더 및 라이브러리 파일을 검색하려면 두 가지 방법이 있습니다.

  • MySQL 서버 배포를 설치합니다. 서버 배포는 libmysqlclient 와 libmysqld 가 모두 포함되어 있습니다.

  • MySQL Connector / C 배포를 설치합니다. Connector / C 배포는 libmysqlclient 만 포함됩니다. 그들에게 libmysqld 은 포함되지 않습니다.

MySQL 서버와 MySQL Connector / C에서 모두 사전 구축 된 C API 파일을 포함한 바이너리 배포판을 설치하거나 소스 배포판을 사용하여 자신의 C API 파일을 만들 수 있습니다.

일반적으로 MySQL 서버 배포 또는 MySQL Connector / C 배포 중 하나를 설치하고 둘은 설치하지 않습니다. MySQL 서버와 MySQL Connector / C의 동시 설치에 따른 문제에 대해서는 섹션 23.8.2 "MySQL 서버와 MySQL Connector / C의 동시 설치" 를 참조하십시오.

C API 클라이언트 응용 프로그램의 링크시에 사용하는 라이브러리 파일의 이름은 라이브러리의 종류와 배포가 구축되는 플랫폼에 따라 다릅니다.

  • Unix (및 Unix와 유사한) 시스템에서 정적 라이브러리는 libmysqlclient.a 입니다. 동적 라이브러리는 대부분의 Unix 시스템에 libmysqlclient.so 및 OS X에서 libmysqlclient.dylib 입니다.

    임베디드 서버 라이브러리가 포함 된 메일의 경우 해당 라이브러리 이름은 libmysqlclient 대신 libmysqld 에서 시작됩니다.

  • Windows에서 정적 라이브러리는 mysqlclient.lib 에서 동적 라이브러리 libmysql.dll 입니다. Windows 배포는 동적 라이브러리를 사용하는 데 필요한 정적 임포트 라이브러리 libmysql.lib 도 포함되어 있습니다.

    임베디드 서버 라이브러리가 포함 된 메일의 경우 해당 라이브러리 이름은 mysqlserver.lib , libmysqld.dll 및 libmysqld.lib 입니다.

    Windows 배포는 일련의 디버그 라이브러리도 포함됩니다. 이들은 비 디버그 라이브러리와 같은 이름을 가지고 있지만 lib/debug 라이브러리에 저장됩니다. 디버그 C 런타임을 사용하여 구축 된 클라이언트를 컴파일 할 때 디버깅 라이브러리를 사용해야합니다.

Unix에서는 이름에 _r 을 포함하는 라이브러리도 볼 수 있습니다. MySQL 5.5 이전에는 이러한 비 _r 라이브러리와는 별도로 스레드 안전 (재진입) 라이브러리로 구축되었습니다. 5.5 이상 두 라이브러리가 동일하며 _r 이름은 해당 비 _r 이름에 심볼릭 링크됩니다. _r 라이브러리를 사용할 필요가 없습니다. 예를 들어, mysql_config을 사용하여 링커 플래그를 취득하는 경우, 스레드 클라이언트에서도 모든 경우에 mysql_config --libs을 사용할 수 있습니다. mysql_config --libs_r를 사용할 필요가 없습니다.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved