Spec-Zone .ru
спецификации, руководства, описания, API

5.1.8.1. Установка и Удаление Плагинов

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

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

Плагины сервера должны быть известны серверу прежде, чем они смогут использоваться. Плагин может быть сообщен несколько путей, как описано здесь. В следующих описаниях, plugin_name стенды для сменного имени такой как innodb или csv.

Встроенные плагины:

Плагин, который встраивается к серверу, известен сервером автоматически. Обычно, сервер включает плагину при запуске, хотя это может быть изменено с --plugin_name опция.

Плагины, зарегистрированные в mysql.plugin таблица:

mysql.plugin таблица служит реестром плагинов. Сервер обычно включает каждому плагину, перечисленному в таблице при запуске, хотя, включается ли данный плагин, может быть изменен с --plugin_name опция. Если сервер запускается с --skip-grant-tables опция, это не консультируется с этой таблицей и не загружает плагины, перечисленные там.

Плагины назвали с параметрами командной строки:

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

Значение опции является разделенным от точки с запятой списком name=plugin_library пары. Каждый name имя плагина, и plugin_library имя совместно используемой библиотеки, которая содержит сменный код. Если сменную библиотеку называют без какого-либо предыдущего сменного имени, сервер загружает все плагины в библиотеке. Каждый файл библиотеки должен быть расположен в каталоге, названном plugin_dir системная переменная.

Эта опция не регистрирует плагина в mysql.plugin таблица. Для последующих перезапусков сервер загружает плагин снова только если --plugin-load дается снова. Таким образом, эта опция производит одноразовую установку, которая сохраняется только для одного вызова сервера.

--plugin-load позволяет плагинам быть загруженными даже когда --skip-grant-tables дается (который заставляет сервер игнорировать mysql.plugin таблица). --plugin-load также позволяет плагинам быть загруженными при запуске под конфигурациями, когда плагины не могут быть загружены во времени выполнения.

--plugin-load-add опция дополняет --plugin-load опция. --plugin-load-add добавляют плагин или плагины к набору плагинов, которые будут загружены при запуске. Формат параметра является тем же самым что касается --plugin-load. --plugin-load-add может использоваться, чтобы избежать определять большой набор плагинов как сингл, длинный громоздкий --plugin-load. параметр. --plugin-load-add в отсутствие можно дать --plugin-load, но любой экземпляр --plugin-load-add это появляется прежде --plugin-load. не имеет никакого эффекта потому что --plugin-load сбрасывает набор плагинов, чтобы загрузиться. Другими словами, эти опции:

--plugin-load=x --plugin-load-add=y

эквивалентны этой опции:

--plugin-load="x;y"

Но эти опции:

--plugin-load-add=y --plugin-load=x

эквивалентны этой опции:

--plugin-load=x

Плагины, установленные с INSTALL PLUGIN оператор:

Плагин, который располагается в сменном файле библиотеки, может быть загружен во времени выполнения с INSTALL PLUGIN оператор. Оператор также регистрирует плагин в mysql.plugin таблица, чтобы заставить сервер загружать это на последующих перезапусках. Поэтому INSTALL PLUGIN требует INSERT полномочие для mysql.plugin таблица.

Если плагин называют обоими использованиями a --plugin-load опция и в mysql.plugin таблица, сервер запускает, но пишет эти сообщения в журнал ошибок:

100310 19:15:44 [ERROR] Function 'plugin_name' already exists100310 19:15:44 [Warning] Couldn't load plugin named 'plugin_name'with soname 'plugin_object_file'.

Пример: --plugin-load опция устанавливает плагин при запуске сервера. Устанавливать названный плагин myplugin в сменном названном файле библиотеки somepluglib.so, используйте эти строки в a my.cnf файл:

[mysqld]plugin-load=myplugin=somepluglib.so

В этом случае плагин не регистрируется в mysql.plugin. Перезапуск сервера без --plugin-load опция заставляет плагин не быть загруженным при запуске.

Альтернативно, INSTALL PLUGIN оператор заставляет сервер загружать сменный код из файла библиотеки во времени выполнения:

mysql> INSTALL PLUGIN myplugin SONAME
        'somepluglib.so';

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

Много плагинов могут быть загружены или при запуске сервера или во времени выполнения. Однако, если плагин разрабатывается так, что, он должен быть загружен и инициализирован во время запуска сервера, использовать --plugin-load вместо INSTALL PLUGIN.

В то время как плагин загружается, информация об этом доступна во времени выполнения из нескольких источников, такой как INFORMATION_SCHEMA.PLUGINS таблица и SHOW PLUGINS оператор. Для получения дополнительной информации см. Раздел 5.1.8.2, "Получая информацию о Плагине Сервера".

Управление Сменной Активацией

Если сервер знает о плагине, когда он запускается (например, потому что плагин называют, используя a --plugin-load опция или зарегистрированный в mysql.plugin таблица), сервер загружает и включает плагину по умолчанию. Возможно управлять активацией для такого плагина, используя a --plugin_name[=value] опция запуска, названная в честь плагина. В следующих описаниях, plugin_name стенды для сменного имени такой как innodb или csv. Как с другими опциями, тире и подчеркивания являются взаимозаменяемыми на имена опции. Например, --my_plugin=ON и --my-plugin=ON эквивалентны.

Значения OFF, ON, FORCE, и FORCE_PLUS_PERMANENT не являются чувствительными к регистру.

Состояние активации для плагинов видимо в LOAD_OPTION столбец INFORMATION_SCHEMA.PLUGINS таблица.

Предположите это CSV, BLACKHOLE, и ARCHIVE встроенные сменные механизмы хранения и что Вы хотите, чтобы сервер загрузил их при запуске согласно этим условиям: серверу разрешают работать если CSV сбои инициализации, но должен потребовать этого BLACKHOLE инициализация успешно выполняется, и ARCHIVE должен быть отключен. Чтобы выполнить это, используйте эти строки в файле опции:

[mysqld]csv=ONblackhole=FORCEarchive=OFF

--enable-plugin_name формат опции поддерживается как синоним для --plugin_name=ON. --disable-plugin_name и --skip-plugin_name форматы опции поддерживаются как синонимы для --plugin_name=OFF.

Если плагин отключается, любой явно с OFF или неявно потому что с этим включили ON но отказавший, чтобы инициализировать, аспекты работы сервера, которые требуют плагина, изменятся. Например, если плагин реализует механизм хранения, существующие таблицы для механизма хранения становятся недоступными, и пытается составить новые таблицы для результата механизма хранения в таблицах, которые не используют механизм хранения значения по умолчанию если NO_ENGINE_SUBSTITUTION Режиму SQL позволили вызвать ошибку произойти вместо этого.

Отключение плагина может потребовать корректировки других опций. Например, если Вы запускаете использование сервера --skip-innodb отключить InnoDB, другой innodb_xxx опции, вероятно, должны будут быть опущены от команды запуска. Кроме того, потому что InnoDB механизм хранения значения по умолчанию, он не будет запускаться, если Вы не определите другой доступный механизм хранения с --default_storage_engine. Следует также установить --default_tmp_storage_engine.

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

Плагин, известный серверу, может быть удален, чтобы отключить это во времени выполнения с UNINSTALL PLUGIN оператор. Оператор разгружает плагин и удаляет его из mysql.plugin таблица, если это регистрируется там. Поэтому UNINSTALL PLUGIN оператор требует DELETE полномочие для mysql.plugin таблица. С плагином, больше зарегистрированным в таблице, сервер не будет загружать плагин автоматически для последующих перезапусков.

UNINSTALL PLUGIN может разгрузить плагины независимо от того, были ли они загружены INSTALL PLUGIN или --plugin-load.

UNINSTALL PLUGIN подвергается этим исключениям: