Spec-Zone .ru
спецификации, руководства, описания, API
|
Плагины сервера должны быть загружены в в сервер прежде, чем они смогут использоваться. 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
эквивалентны.
--
plugin_name
=OFF
Говорит серверу отключать плагин.
--
plugin_name
[=ON]
Говорит серверу включать плагину. (Определение опции как --
без значения имеет тот же самый
эффект.), Если плагин не в состоянии инициализировать, выполнения сервера с отключенным плагином.
plugin_name
--
plugin_name
=FORCE
Говорит серверу включать плагину, но если сменная инициализация перестала работать, сервер не запускается. Другими словами эта опция вынуждает сервер работать с включенным плагином или нисколько.
--
plugin_name
=FORCE_PLUS_PERMANENT
Как FORCE
, но кроме того препятствует тому, чтобы плагин был разгружен
во времени выполнения. Если пользователь пытается сделать так с UNINSTALL PLUGIN
, ошибка происходит.
Значения 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
подвергается этим исключениям:
Это не может разгрузить плагины, которые встраиваются к серверу. Они могут быть
идентифицированы как те, у которых есть имя библиотеки NULL
в выводе от INFORMATION_SCHEMA.PLUGINS
или SHOW PLUGINS
.
Это не может разгрузить плагины, для которых сервер был запущен с --
,
который предотвращает плагин, разгружающийся во времени выполнения. Они могут быть идентифицированы от
plugin_name
=FORCE_PLUS_PERMANENTLOAD_OPTION
столбец INFORMATION_SCHEMA.PLUGINS
таблица.