Spec-Zone.ru › MariaDB

Обзор плагинов

Плагины — это компоненты сервера, которые расширяют MariaDB каким-либо образом. Это могут быть новые движки хранения данных, плагины для улучшения обработки полнотекстового поиска или даже небольшие улучшения, такие как плагин для получения отметки времени как целого числа.

Получение информации о плагинах

Существует несколько способов узнать, какие плагины в настоящее время активны.

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

Получение информации о плагинах с помощью SHOW PLUGINS

Для запроса информации обо всех активных плагинах можно использовать оператор SHOW PLUGINS.

Например:

SHOW PLUGINS\G;
********************** 1. row **********************
   Name: binlog
 Status: ACTIVE
   Type: STORAGE ENGINE
Library: NULL
License: GPL
********************** 2. row **********************
   Name: mysql_native_password
 Status: ACTIVE
   Type: AUTHENTICATION
Library: NULL
License: GPL
********************** 3. row **********************
   Name: mysql_old_password
 Status: ACTIVE
   Type: AUTHENTICATION
Library: NULL
License: GPL
...

Если столбец Library плагина имеет значение NULL, то плагин встроенный и его нельзя удалить.

Получение информации о плагинах с помощью information_schema.PLUGINS

Для получения более подробной информации о плагинах можно обратиться к таблице information_schema.PLUGINS.

Например:

SELECT * FROM information_schema.PLUGINS\G
...
*************************** 6. row ***************************
           PLUGIN_NAME: CSV
        PLUGIN_VERSION: 1.0
         PLUGIN_STATUS: ACTIVE
           PLUGIN_TYPE: STORAGE ENGINE
   PLUGIN_TYPE_VERSION: 100003.0
        PLUGIN_LIBRARY: NULL
PLUGIN_LIBRARY_VERSION: NULL
         PLUGIN_AUTHOR: Brian Aker, MySQL AB
    PLUGIN_DESCRIPTION: CSV storage engine
        PLUGIN_LICENSE: GPL
           LOAD_OPTION: FORCE
       PLUGIN_MATURITY: Stable
   PLUGIN_AUTH_VERSION: 1.0
*************************** 7. row ***************************
           PLUGIN_NAME: MEMORY
        PLUGIN_VERSION: 1.0
         PLUGIN_STATUS: ACTIVE
           PLUGIN_TYPE: STORAGE ENGINE
   PLUGIN_TYPE_VERSION: 100003.0
        PLUGIN_LIBRARY: NULL
PLUGIN_LIBRARY_VERSION: NULL
         PLUGIN_AUTHOR: MySQL AB
    PLUGIN_DESCRIPTION: Hash based, stored in memory, useful for temporary tables
        PLUGIN_LICENSE: GPL
           LOAD_OPTION: FORCE
       PLUGIN_MATURITY: Stable
   PLUGIN_AUTH_VERSION: 1.0
...

Если столбец PLUGIN_LIBRARY плагина имеет значение NULL, то плагин встроенный и его нельзя удалить.

Получение информации о плагинах с помощью mysql.plugin

Для получения информации об установленных плагинах можно обратиться к таблице mysql.plugin.

Эта таблица содержит информацию только о плагинах, установленных следующими способами:

  • Оператор INSTALL SONAME.
  • Оператор INSTALL PLUGIN.
  • Утилита mariadb-plugin.

Эта таблица не содержит информацию о:

  • Встроенных плагинах.
  • Плагинах, загруженных с помощью опции --plugin-load-add.
  • Плагинах, загруженных с помощью опции --plugin-load.

Эта таблица содержит только необходимую информацию для перезагрузки плагина при перезапуске сервера, то есть только имя плагина и библиотеку плагина.

Например:

SELECT * FROM mysql.plugin;

+------+------------+
| name | dl         |
+------+------------+
| PBXT | libpbxt.so |
+------+------------+

Установка плагина

Существует три основных способа установки плагина:

  • Плагин можно установить динамически с помощью оператора SQL.
  • Плагин можно установить с помощью опции mariadbd, но это требует перезагрузки сервера.
  • Плагин можно установить с помощью утилиты mariadb-plugin, при полном отключении сервера.

При установке плагина необходимо также убедиться в следующем:

  • Директория плагинов сервера настроена правильно, и библиотека плагина находится в директории плагинов.
  • Минимальная зрелость плагина сервера настроена правильно, и плагин достаточно зрелый для установки.

Динамическая установка плагина

Плагин можно установить динамически, выполнив оператор INSTALL SONAME или INSTALL PLUGIN.

Если плагин установлен с помощью одного из этих операторов, то запись о плагине будет добавлена в таблицу mysql.plugins. Это означает, что плагин будет автоматически загружен при каждом перезапуске сервера, если его не удалили или не деактивировали.

Установка плагина с помощью INSTALL SONAME

Вы можете установить плагин динамически, выполнив оператор INSTALL SONAME. INSTALL SONAME устанавливает все плагины из заданной библиотеки плагинов. Это может потребоваться для некоторых библиотек плагинов.

Например, для установки всех плагинов в библиотеке плагинов server_audit (в которой в настоящее время есть только плагин аудита server_audit), можно выполнить следующую команду:

INSTALL SONAME 'server_audit';

Установка плагина с помощью INSTALL PLUGIN

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

Например, для установки плагина аудита server_audit из библиотеки плагинов server_audit можно выполнить следующую команду:

INSTALL PLUGIN server_audit SONAME 'server_audit';

Установка плагина с параметрами загрузки плагина

Плагин можно установить с помощью опции mariadbd, указав либо опцию --plugin-load-add, либо --plugin-load.

Если плагин установлен с помощью одной из этих опций, то запись о плагине не будет добавлена в таблицу mysql.plugins. Это означает, что если сервер перезагрузить без указания этой же опции, то плагин не будет автоматически загружен.

Установка плагина с помощью --plugin-load-add

Вы можете установить плагин с помощью опции --plugin-load-add, указав её как аргумент командной строки для mariadbd, или указав её в соответствующей группе параметров сервера в файле опций.

Опция --plugin-load-add использует следующий формат:

  • Плагины могут быть указаны в формате name=library, где name — имя плагина, а library — библиотека плагина. Этот формат устанавливает один плагин из данной библиотеки плагинов.
  • Плагины также могут быть указаны в формате library, где library — библиотека плагина. Этот формат устанавливает все плагины из данной библиотеки плагинов.
  • Несколько плагинов можно указать, разделив их точками с запятой.

Например, для установки всех плагинов в библиотеке плагинов server_audit (в которой в настоящее время есть только плагин аудита server_audit) и также плагина аутентификации ed25519 из библиотеки плагинов auth_ed25519, вы можете установить опцию со следующими значениями в командной строке:

$ mariadbd --user=mysql --plugin-load-add='server_audit' --plugin-load-add='ed25519=auth_ed25519'

Вы также можете установить опцию с теми же значениями в файле опций:

[mariadb]
...
plugin_load_add = server_audit
plugin_load_add = ed25519=auth_ed25519

Необходимо проявлять особую осторожность при одновременном указании опций --plugin-load и --plugin-load-add. Опция --plugin-load сбрасывает список загрузки плагинов, и это может привести к неожиданным проблемам, если вы об этом не знаете. Опция --plugin-load-add не сбрасывает список загрузки плагинов, поэтому её использовать гораздо безопаснее. Подробнее см. раздел Указание нескольких параметров загрузки плагинов.

Установка плагина с помощью --plugin-load

Вы можете установить плагин с помощью опции --plugin-load, указав её как аргумент командной строки для mariadbd или указав её в соответствующей группе параметров сервера в файле опций.

Опция --plugin-load использует следующий формат:

  • Плагины могут быть указаны в формате name=library, где name — имя плагина, а library — библиотека плагина. Этот формат устанавливает один плагин из данной библиотеки плагинов.
  • Плагины также могут быть указаны в формате library, где library — библиотека плагина. Этот формат устанавливает все плагины из данной библиотеки плагинов.
  • Несколько плагинов можно указать, разделив их точками с запятой.

Например, для установки всех плагинов в библиотеке плагинов server_audit (в которой в настоящее время есть только плагин аудита server_audit) и также плагина аутентификации ed25519 из библиотеки плагинов auth_ed25519, вы можете установить опцию со следующими значениями в командной строке:

$ mariadbd --user=mysql --plugin-load='server_audit;ed25519=auth_ed25519'

Вы также можете установить опцию с теми же значениями в файле опций:

[mariadb]
...
plugin_load = server_audit;ed25519=auth_ed25519

Необходимо проявлять особую осторожность при многократном указании опции --plugin-load, или при одновременном указании опций --plugin-load и --plugin-load-add. Опция --plugin-load сбрасывает список загрузки плагинов, и это может привести к неожиданным проблемам, если вы об этом не знаете. Опция --plugin-load-add не сбрасывает список загрузки плагинов, поэтому её использовать гораздо безопаснее. Подробнее см. раздел Указание нескольких параметров загрузки плагинов.

Указание нескольких параметров загрузки плагинов

Необходимо проявлять особую осторожность при многократном указании опции --plugin-load или при одновременном указании опций --plugin-load и --plugin-load-add. Опция --plugin-load сбрасывает список загрузки плагинов, и это может привести к неожиданным проблемам, если вы об этом не знаете. Опция --plugin-load-add не сбрасывает список загрузки плагинов, поэтому её использовать гораздо безопаснее.

Это может иметь следующие последствия:

  • Если опция --plugin-load указана несколько раз, то только последнее значение будет иметь какой-либо эффект. Например, в следующем случае первое значение опции сброшено:
[mariadb]
...
plugin_load = server_audit
plugin_load = ed25519=auth_ed25519
  • Если опция --plugin-load указана после опции --plugin-load-add, то она также сбросит изменения, внесённые этой опцией. Например, в следующем случае опция --plugin-load-add ничего не делает, потому что последующая опция --plugin-load сбрасывает список загрузки плагинов:
[mariadb]
...
plugin_load_add = server_audit
plugin_load = ed25519=auth_ed25519
  • Напротив, если опция --plugin-load указана перед опцией --plugin-load-add, она будет работать нормально, потому что опция --plugin-load-add не сбрасывает список загрузки плагинов. Например, в следующем случае оба плагина загружаются правильно:
[mariadb]
...
plugin_load = server_audit
plugin_load_add = ed25519=auth_ed25519

Установка плагина с помощью mariadb-plugin

Плагин можно установить с помощью утилиты mariadb-plugin, если сервер полностью выключен.

Синтаксис:

mariadb-plugin [options] <plugin> ENABLE|DISABLE

Например, для установки плагина аудита server_audit можно выполнить следующее:

mariadb-plugin server_audit ENABLE

Если плагин установлен с помощью этой утилиты, в таблицу mysql.plugins будет добавлена запись для плагина. Это означает, что плагин будет автоматически загружаться при каждом перезапуске сервера, если его не отключить или не удалить.

Настройка каталога плагинов

При установке плагина сервер ищет библиотеку плагина в каталоге плагинов сервера. Этот каталог настраивается переменной системы plugin_dir. Это можно указать в качестве аргумента командной строки для mariadbd или в соответствующей группе опций сервера в файле опций группы опций в файле опций. Например:

[mariadb]
...
plugin_dir = /usr/lib64/mysql/plugin

Настройка минимальной зрелости плагина

При установке плагина сервер сравнивает уровень зрелости плагина с минимально допустимым уровнем зрелости плагинов сервера. Это помогает предотвратить использование нестабильных плагинов на серверах производства. Минимальная зрелость плагина настраивается переменной системы plugin_maturity. Это можно указать в качестве аргумента командной строки для mariadbd или в соответствующей группе опций сервера в файле опций группы опций в файле опций. Например:

[mariadb]
...
plugin_maturity = stable

Настройка активации плагина при запуске сервера

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

  • Плагин был установлен с помощью оператора INSTALL SONAME.
  • Плагин был установлен с помощью оператора INSTALL PLUGIN.
  • Плагин был установлен с помощью утилиты mariadb-plugin.
  • Сервер настроен на загрузку плагина с помощью опции --plugin-load-add.
  • Сервер настроен на загрузку плагина с помощью опции --plugin-load.

Это поведение можно изменить с помощью специальных опций, которые имеют вид --plugin-name. Например, для плагина аудита server_audit специальная опция называется --server-audit.

Возможные значения этих специальных опций:

Значение опции Описание
OFF Отключает плагин, не удаляя его из таблицы mysql.plugins.
ON Включает плагин. Если плагин невозможно инициализировать, сервер всё равно продолжит запуск, но плагин будет отключен.
FORCE Включает плагин. Если плагин невозможно инициализировать, сервер не запустится и выдаст ошибку.
FORCE_PLUS_PERMANENT Включает плагин. Если плагин невозможно инициализировать, сервер не запустится и выдаст ошибку. Кроме того, плагин нельзя удалить с помощью UNINSTALL SONAME or UNINSTALL PLUGIN во время работы сервера.

Статус плагина можно найти, посмотрев на столбец PLUGIN_STATUS таблицы information_schema.PLUGINS.

Удаление плагинов

Плагины, которые находятся в таблице mysql.plugin, то есть те, которые были установлены с помощью INSTALL SONAME, INSTALL PLUGIN или mariadb-plugin, можно удалить одним из двух способов:

  • Оператор UNINSTALL SONAME или UNINSTALL PLUGIN во время работы сервера
  • С помощью mariadb-plugin при выключенном сервере.

Плагины, включенные в качестве опции --plugin-load, не нужно удалять. Если --plugin-load будет опущено при следующем запуске сервера, или плагин не будет указан в качестве одного из --plugin-load записей, плагин не будет загружен.

UNINSTALL PLUGIN удаляет один установленный плагин, а UNINSTALL SONAME удаляет все плагины, принадлежащие данной библиотеке.

См. также

  • Список плагинов
  • INSTALL PLUGIN
  • INSTALL SONAME
  • UNINSTALL PLUGIN
  • UNINSTALL SONAME
  • SHOW PLUGINS
  • Таблица INFORMATION_SCHEMA.PLUGINS
  • mariadb-plugin
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется заранее компанией MariaDB. Мнения, информация и мнения, выраженные в этом контенте, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/plugin-overview/

Spec-Zone.ru

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