23.7 libmysqld, the Embedded MySQL Server Library
임베디드 MySQL 서버 라이브러리는 클라이언트 응용 프로그램에서 완전한 기능을 갖춘 MySQL 서버를 실행할 수 있도록합니다. 이 주요 이점은 임베디드 애플리케이션의 속도 향상 및 관리의 단순화입니다.
임베디드 서버 라이브러리는 C / C ++로 작성된 것입니다 MySQL의 클라이언트 / 서버 버전을 기반으로합니다. 따라서 임베디드 서버도 C / C ++로 제작되어 있습니다. 다른 언어에서 사용할 수있는 임베디드 서버는 없습니다.
API는 임베디드 MySQL 버전과 클라이언트 / 서버 버전에서 동일합니다. 내장 라이브러리를 사용하도록 스레드 응용 프로그램을 변경하려면 일반적으로 다음의 함수 호출을 추가 할 필요가있을뿐입니다.
표 23.3 MySQL 임베디드 서버 라이브러리 함수
함수 | 호출 타이밍 |
---|---|
| 다른 MySQL 함수를 호출하기 전에 가능하면 |
| 프로그램이 종료하기 전에 호출합니다. |
| MySQL에 액세스 할 만드는 각 스레드에서 호출합니다. |
mysql_thread_end() | pthread_exit() 를 호출하기 전에 호출합니다. |
다음 코드를 libmysqlclient.a
대신에 libmysqld.a
에 링크합니다. 응용 프로그램 및 서버 라이브러리 간의 이진 호환성을 확보하려면 항상 서버 라이브러리의 컴파일에 사용 된 같은 일련의 MySQL의 헤더에 응용 프로그램을 컴파일합니다. 예를 들어, libmysqld
가 MySQL 5.1 헤더에 대해 컴파일 된 경우 응용 프로그램을 MySQL 5.5 헤더에 컴파일하지 마십시오. 또한 반대도 마찬가지입니다.
mysql_library_
함수는 xxx
()libmysqlclient.a
도 포함되어 있기 때문에 응용 프로그램을 올바른 라이브러리와 링크하는 것만으로 임베디드 버전과 클라이언트 / 서버 버전 간의 변경이 가능합니다. 섹션 23.8.7.40 "mysql_library_init ()" 를 참조하십시오.
임베디드 서버와 독립형 서버의 하나의 차이점은 임베디드 서버의 경우 연결에 대한 인증이 기본적으로 비활성화되어있는 것입니다.