Rechercher dans le manuel MySQL
29.2.4.5 Writing Daemon Plugins
A daemon plugin is a simple type of plugin used for code that
should be run by the server but that does not communicate with
it. This section describes how to write a daemon server
plugin, using the example plugin found in the
plugin/daemon_example
directory of MySQL
source distributions. That directory contains the
daemon_example.cc
source file for a daemon
plugin named daemon_example
that writes a
heartbeat string at regular intervals to a file named
mysql-heartbeat.log
in the data
directory.
To write a daemon plugin, include the following header file in the plugin source file. Other MySQL or general header files might also be needed, depending on the plugin capabilities and requirements.
#include <mysql/plugin.h>
plugin.h
defines the
MYSQL_DAEMON_PLUGIN
server plugin type and
the data structures needed to declare the plugin.
The daemon_example.cc
file sets up the
library descriptor as follows. The library descriptor includes
a single general server plugin descriptor.
mysql_declare_plugin(daemon_example)
{
MYSQL_DAEMON_PLUGIN,
&daemon_example_plugin,
"daemon_example",
"Brian Aker",
"Daemon example, creates a heartbeat beat file in mysql-heartbeat.log",
PLUGIN_LICENSE_GPL,
daemon_example_plugin_init, /* Plugin Init */
daemon_example_plugin_deinit, /* Plugin Deinit */
0x0100 /* 1.0 */,
NULL, /* status variables */
NULL, /* system variables */
NULL, /* config options */
0, /* flags */
}
mysql_declare_plugin_end;
The name
member
(daemon_example
) indicates the name to use
for references to the plugin in statements such as
INSTALL PLUGIN
or
UNINSTALL PLUGIN
. This is also
the name displayed by SHOW
PLUGINS
or
INFORMATION_SCHEMA.PLUGINS
.
The second member of the plugin descriptor,
daemon_example_plugin
, points to the
type-specific daemon plugin descriptor. This structure
consists only of the type-specific API version number:
struct st_mysql_daemon daemon_example_plugin=
{ MYSQL_DAEMON_INTERFACE_VERSION };
The type-specific structure has no interface functions. There is no communication between the server and the plugin, except that the server calls the initialization and deinitialization functions from the general plugin descriptor to start and stop the plugin:
daemon_example_plugin_init()
opens the heartbeat file and spawns a thread that wakes up periodically and writes the next message to the file.daemon_example_plugin_deinit()
closes the file and performs other cleanup.
To compile and install a plugin library file, use the
instructions in Section 29.2.4.3, “Compiling and Installing Plugin Libraries”.
To make the library file available for use, install it in the
plugin directory (the directory named by the
plugin_dir
system variable).
For the daemon_example
plugin, it is
compiled and installed when you build MySQL from source. It is
also included in binary distributions. The build process
produces a shared object library with a name of
libdaemon_example.so
(the
.so
suffix might differ depending on your
platform).
To use the plugin, register it with the server. For example,
to register the plugin at runtime, use this statement (adjust
the .so
suffix for your platform as
necessary):
For additional information about plugin loading, see Section 5.6.1, “Installing and Uninstalling Plugins”.
To verify plugin installation, examine the
INFORMATION_SCHEMA.PLUGINS
table
or use the SHOW PLUGINS
statement. See Section 5.6.2, “Obtaining Server Plugin Information”.
While the plugin is loaded, it writes a heartbeat string at
regular intervals to a file named
mysql-heartbeat.log
in the data
directory. This file grows without limit, so after you have
satistifed yourself that the plugin operates correctly, unload
it:
- UNINSTALL PLUGIN daemon_example;
Nederlandse vertaling
U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.
Bij voorbaat dank.
Document heeft de 26/06/2006 gemaakt, de laatste keer de 26/10/2018 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/mysql-rf-writing-daemon-plugins.html
De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.
Referenties
Deze verwijzingen en links verwijzen naar documenten die geraadpleegd zijn tijdens het schrijven van deze pagina, of die aanvullende informatie kunnen geven, maar de auteurs van deze bronnen kunnen niet verantwoordelijk worden gehouden voor de inhoud van deze pagina.
De auteur Deze site is als enige verantwoordelijk voor de manier waarop de verschillende concepten, en de vrijheden die met de referentiewerken worden genomen, hier worden gepresenteerd. Vergeet niet dat u meerdere broninformatie moet doorgeven om het risico op fouten te verkleinen.