Spec-Zone.ru › MySQL Connectors 1.0

9.2.3 mysql_load_plugin()

struct st_mysql_client_plugin *
mysql_load_plugin(MYSQL *mysql,
                  const char *name,
                  int type,
                  int argc,
                  ...)

Описание

Загружает плагин MySQL-клиента, указанный по имени и типу. Возникает ошибка, если тип недействителен или плагин не может быть загружен.

Невозможно загрузить несколько плагинов одного типа. Возникает ошибка, если вы пытаетесь загрузить плагин того же типа, что уже загружен.

Укажите аргументы следующим образом:

  • mysql: Указатель на структуру MYSQL. API плагина не требует соединения с сервером MySQL, но эта структура должна быть должным образом инициализирована. Структура используется для получения информации, связанной с подключением.

  • name: Имя загружаемого плагина.

  • type: Тип загружаемого плагина или −1 для отключения проверки типа. Если тип не равен −1, для загрузки рассматриваются только плагины, соответствующие типу.

  • argc: Количество следующих аргументов (0, если их нет). Интерпретация последующих аргументов зависит от типа плагина.

Другой способ загрузки плагинов — установка переменной окружения LIBMYSQL_PLUGINS в список имен плагинов, разделенных точкой с запятой. Например:

export LIBMYSQL_PLUGINS="myplugin1;myplugin2"

Плагины, именованные LIBMYSQL_PLUGINS, загружаются, когда клиентская программа вызывает mysql_library_init(). Ошибки при загрузке этих плагинов не сообщаются.

Переменная окружения LIBMYSQL_PLUGIN_DIR может быть установлена в имя каталога, в котором следует искать клиентские плагины. Эта переменная используется двумя способами:

  • Во время предварительной загрузки клиентского плагина значение опции недоступно, поэтому загрузка клиентского плагина завершается ошибкой, если плагины не находятся в жёстко заданном каталоге по умолчанию. Если плагины находятся в другом месте, переменная окружения LIBMYSQL_PLUGIN_DIR может быть установлена в соответствующий каталог, чтобы предварительная загрузка плагина прошла успешно.

  • Для явной загрузки клиентского плагина функции C API mysql_load_plugin() и mysql_load_plugin_v() используют значение LIBMYSQL_PLUGIN_DIR, если оно существует, и опция не была задана. Если опция задана, mysql_load_plugin() и mysql_load_plugin_v() игнорируют LIBMYSQL_PLUGIN_DIR.

Возвращаемые значения

Указатель на плагин, если он был успешно загружен. NULL, если произошла ошибка.

Ошибки

Для проверки ошибок используйте функцию mysql_error() или mysql_errno(). См. Раздел 5.4.15, «mysql_error()» и Раздел 5.4.14, «mysql_errno()».

Пример

MYSQL mysql;

if(!mysql_load_plugin(&mysql, "myplugin",
                      MYSQL_CLIENT_AUTHENTICATION_PLUGIN, 0))
{
    fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
    exit(-1);
}

См. также

См. также Раздел 9.2.3, «mysql_load_plugin()», Раздел 5.4.15, «mysql_error()», Раздел 5.4.14, «mysql_errno()».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/c-api-5.7-en/mysql-load-plugin.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API