Kapitel 9: MySQL-APIs 599
2. Rufen Sie mysql_thread_init() im Thread-Handler auf, bevor Sie irgend welche
MySQL-Funktionen aufrufen.
3. Rufen Sie im Thread mysql_thread_end() auf, bevor Sie pthread_exit() aufrufen.
Das gibt Speicher frei, der von MySQL-Thread-spezifischen Variablen benutzt wird.
Eventuell erhalten Sie Fehler wegen undefinierter Symbole, wenn Sie Ihren Client
mit mysqlclient_r linken. In den meisten F¨allen liegt das daran, dass Sie die
Thread-Bibliotheken nicht auf der Link- / Kompilierzeile eingeschlossen haben.
9.4.9 libmysqld, die eingebettete MySQL-Server-Bibliothek
9.4.9.1
¨
Uberblick ¨uber die eingebettete MySQL-Server-Bibliothek
Die eingebettete MySQL-Server-Bibliothek erm¨oglicht es, einen MySQL-Server mit allen
Features innerhalb einer Client-Applikation laufen zu lassen. Die haupts¨achlichen Vorteile
sind erh¨ohte Geschwindigkeit und einfachere Verwaltung eingebetteter Applikationen.
9.4.9.2 Programme mit libmysqld kompilieren
Momentan m¨ussen alle unterst¨utzten Bibliotheken explizit aufgelistet werden, wenn Sie
mit -lmysqld linken. In Zukunft wird mysql_config --libmysqld-libs die Bibliotheken
benennen, um das zu erleichtern. Dar¨uber hinaus werden alle unterst¨utzten Bibliotheken
wahrscheinlich in libmysqld eingeschlossen werden, um dies noch weiter zu vereinfachen.
Die korrekten Flags zum Kompilieren und Linken eines threaded Programms m¨ussen be-
nutzt werden, selbst wenn Sie nicht direkt irgend welche Thread-Funktionen in Ihrem Code
aufrufen.
9.4.9.3 Ein einfaches Embedded-Server-Beispiel
Dieses Beispiel-Programm und makefile sollten ohne
¨
Anderungen auf einem Linux- oder
FreeBSD-System funktionieren. Bei anderen Betriebssystemen sind kleinere
¨
Anderungen
notwendig. Dieses Beispiel ist so angelegt, dass gen¨ugend Details dargestellt werden, um
die Problematik zu verstehen, ohne zu viel "Verwirrendes" einzubringen, das Teil einer
echten Applikation ist.
Um das Beispiel auszuprobieren, erzeugen Sie ein ‘example’-Verzeichnis auf derselben
Ebene wie das mysql-4.0-Quell-Verzeichnis. Speichern Sie die ‘example.c’-Quelle
und das ‘GNUmakefile’ im Verzeichnis und lassen Sie GNU-‘make’ innerhalb des
‘example’-Verzeichnisses laufen.
‘example.c’
/*
* Ein einfacher Beispiel-Client, der die eingebettete
* MySQL-Server-Bibliothek benutzt
*/
Comentarios a estos manuales