mariadb-admin
От MariaDB 10.4.6, mariadb-admin является символьной ссылкой на mysqladmin, программу администрирования демона mysqld.
От MariaDB 10.5.2, mariadb-admin — это имя программы администрирования демона mysqld, при этом mysqladmin является символьной ссылкой.
mariadb-admin — это программа администрирования демона mysqld. Она может использоваться для:
- Мониторинга активности клиентов MariaDB (процессы)
- Получения статистических данных и переменных сервера MariaDB
- Создание/удаление баз данных
- Очистки (сброса) логов, статистики и таблиц
- Прерывания выполнения запросов.
- Остановки сервера (выключение)
- Запуска/остановки реплик
- Проверки работоспособности сервера (ping)
Использование mariadb-admin
Команда для использования mariadb-admin и общий синтаксис:
mariadb-admin [options] command [command-arg] [command [command-arg]] ...
Параметры
mariadb-admin поддерживает следующие параметры:
| Опция | Описание |
|---|---|
--character-sets-dir=name |
Директория, где расположены файлы наборов символов. |
-C, --compress
|
Сжать всю информацию, передаваемую между клиентом и сервером, если обе стороны поддерживают сжатие. |
--connect_timeout=val |
Максимальное время в секундах перед таймаутом соединения. Значение по умолчанию — 43200 (12 часов). |
-c val, --count=val
|
Количество итераций. Работает только с -i (--sleep) . |
--debug[=debug_options], -# [debug_options]
|
Записать отладочный журнал. Типичная строка debug_options — d:t:o,file_name. Значение по умолчанию — d:t:o,/tmp/mysqladmin.trace. |
--debug-check |
Проверить использование памяти и открытых файлов при выходе. |
--debug-info |
Вывести отладочную информацию и статистику использования памяти и ЦП при завершении программы. |
--default-auth=plugin |
Плагин аутентификации по умолчанию для клиента. |
--default-character-set=name |
Установить набор символов по умолчанию. |
-f, --force
|
Не запрашивать подтверждение при удалении базы данных; при нескольких командах продолжать даже при возникновении ошибки. |
-?, --help
|
Вывести справку и завершить работу. |
-h name, --host=name
|
Хост для подключения. |
-l, --local
|
Запретить запись SQL-команд в бинарный журнал, включив sql_log_bin=0 для сессии или, начиная с MariaDB 10.2.7 и 10.1.24, только для команд flush с помощью FLUSH LOCAL, а не SET sql_log_bin=0, так что требование привилегий будет RELOAD, а не SUPER. |
-b, --no-beep
|
Отключить звуковой сигнал при ошибке. |
-p[password], --password[=password]
|
Пароль для подключения к серверу. Если пароль не указан, он будет запрошен в терминале. |
--pipe, -W
|
На Windows подключиться к серверу через именованную трубу. Эта опция применяется только если сервер поддерживает подключения через именованные трубы. |
-P portnum, --port=portnum
|
Номер порта для подключения или 0 для использования по умолчанию, в порядке предпочтения: my.cnf, $MYSQL_TCP_PORT, /etc/services, встроенный по умолчанию (3306). |
--protocol=name |
Протокол для подключения (tcp, socket, pipe, memory). |
-r, --relative
|
Показать разницу между текущими и предыдущими значениями при использовании с -i. В настоящее время работает только с extended-status. |
-O value, --set-variable=vaue
|
Изменить значение переменной. Обратите внимание, что эта опция устарела; переменные можно задавать напрямую с помощью --variable-name=value . |
--shutdown_timeout=val |
Максимальное время в секундах ожидания завершения работы сервера. Значение по умолчанию — 3600 (1 час). |
-s, --silent
|
Беззвучно завершить работу, если невозможно подключиться к серверу. |
-i delay, --sleep=delay
|
Повторять команды, ожидая delay секунд между ними. Опция --count определяет количество итераций. Если --count не указано, mariadb-admin выполняет команды бесконечно, пока не будет прервано. |
-S name, --socket=name
|
Для подключений к localhost: файл Unix-соккета или, на Windows, имя именованной трубы. |
--ssl |
Включает TLS. TLS также включается, даже если эта опция не установлена, когда установлены определённые другие опции TLS. Опция --ssl по умолчанию не включает проверку сертификата сервера. Для проверки сертификата сервера пользователь должен указать опцию --ssl-verify-server-cert. |
--ssl-ca=name |
Определяет путь к файлу PEM, который должен содержать один или несколько сертификатов X509 для доверенных центров сертификации (ЦС), используемых для TLS. Эта опция требует использования абсолютного пути, а не относительного. См. Обзор безопасных соединений: Центры сертификации (ЦС) для получения дополнительной информации. Эта опция подразумевает опцию --ssl. |
--ssl-capath=name |
Определяет путь к каталогу, содержащему один или несколько файлов PEM, каждый из которых должен содержать один сертификат X509 для доверенного центра сертификации (ЦС), используемого для TLS. Эта опция требует использования абсолютного пути, а не относительного. Каталог, указанный в этой опции, должен быть обработан командой openssl rehash . См. Обзор безопасных соединений: Центры сертификации (ЦС) для получения дополнительной информации. Эта опция поддерживается только, если клиент был скомпилирован с OpenSSL или yaSSL. Если клиент был скомпилирован с GnuTLS или Schannel, эта опция не поддерживается. См. TLS и криптографические библиотеки, используемые MariaDB для получения дополнительной информации о используемых библиотеках на различных платформах. Эта опция подразумевает опцию --ssl. |
--ssl-cert=name |
Определяет путь к файлу сертификата X509, который должен использоваться для TLS. Эта опция требует использования абсолютного пути, а не относительного. Эта опция подразумевает опцию --ssl. |
--ssl-cipher=name |
Список разрешенных шифров или наборов шифров для использования для TLS. Эта опция подразумевает опцию --ssl. |
--ssl-crl=name |
Определяет путь к файлу PEM, который должен содержать один или несколько отозванных сертификатов X509 для использования для TLS. Эта опция требует использования абсолютного пути, а не относительного. См. Обзор безопасных соединений: списки отозванных сертификатов (CRL) для получения дополнительной информации. Эта опция поддерживается только, если клиент был скомпилирован с OpenSSL или Schannel. Если клиент был скомпилирован с yaSSL или GnuTLS, эта опция не поддерживается. См. TLS и криптографические библиотеки, используемые MariaDB для получения дополнительной информации о используемых библиотеках на различных платформах. |
--ssl-crlpath=name |
Определяет путь к каталогу, содержащему один или несколько файлов PEM, каждый из которых должен содержать один отозванный сертификат X509 для использования для TLS. Эта опция требует использования абсолютного пути, а не относительного. Каталог, указанный в этой опции, должен быть обработан командой openssl rehash . См. Обзор безопасных соединений: списки отозванных сертификатов (CRL) для получения дополнительной информации. Эта опция поддерживается только, если клиент был скомпилирован с OpenSSL. Если клиент был скомпилирован с yaSSL, GnuTLS или Schannel, эта опция не поддерживается. См. TLS и криптографические библиотеки, используемые MariaDB для получения дополнительной информации о используемых библиотеках на различных платформах. |
--ssl-key=name |
Определяет путь к файлу закрытого ключа, который должен использоваться для TLS. Эта опция требует использования абсолютного пути, а не относительного. Эта опция подразумевает опцию --ssl. |
--ssl-verify-server-cert |
Включает проверку сертификата сервера. Эта опция отключена по умолчанию. |
--tls-version=name |
Эта опция принимает список TLS-версий, разделённых запятыми. Версия TLS будет включена только если она присутствует в этом списке. Все остальные версии TLS будут запрещены. См. Обзор безопасных соединений: TLS-версии протоколов для получения дополнительной информации. |
-u, --user=name
|
Пользователь для входа, если не текущий пользователь. |
-v, --verbose
|
Записать больше информации. |
-V, --version
|
Вывести информацию о версии и завершить работу. |
-E, --vertical
|
Вывести вывод вертикально. Похоже на '--relative', но выводит вывод вертикально. |
-w[count], --wait[=count]
|
Если подключение не может быть установлено, ожидать и переподключаться вместо прерывания. Если указано значение count, оно указывает количество попыток переподключения. По умолчанию одна попытка. |
--wait-for-all-slaves |
Ожидать, пока последнее событие binlog будет отправлено всем подключённым репликам перед завершением работы. Эта опция выключена по умолчанию. |
Файлы параметров
Помимо чтения параметров из командной строки, mariadb-admin также может читать параметры из файлов параметров. Если в файле параметров для mariadb-admin указана неизвестная опция, она игнорируется.
Следующие параметры относятся к обработке файлов параметров MariaDB-инструментами командной строки. Они должны быть указаны в качестве первого аргумента в командной строке:
| Вариант | Описание |
|---|---|
--print-defaults |
Выводит список аргументов программы и завершается. |
--no-defaults |
Не читать параметры по умолчанию из файла параметров. |
--defaults-file=# |
Читать параметры по умолчанию только из указанного файла №. |
--defaults-extra-file=# |
Читать этот файл после чтения глобальных файлов. |
--defaults-group-suffix=# |
В дополнение к группам параметров по умолчанию, также читать группы параметров с этим суффиксом. |
mariadb-admin связан с MariaDB Connector/C. Однако MariaDB Connector/C пока не обрабатывает разбор файлов параметров для этого клиента. Это всё ещё выполняется кодом разбора файла параметров сервера. См. MDEV-19035 для получения дополнительной информации.
Группы параметров
mariadb-admin считывает параметры из следующих групп параметров из файлов параметров:
| Группа | Описание |
|---|---|
[mysqladmin] |
Параметры, считываемые mysqladmin, включая как MariaDB Server, так и MySQL Server. |
[mariadb-admin] |
Параметры, считываемые mariadb-admin. Доступно начиная с MariaDB 10.4.6. |
[client] |
Параметры, считываемые всеми программами-клиентами MariaDB и MySQL клиенты, включая как клиенты MariaDB, так и MySQL. Например, mysqldump. |
[client-server] |
Параметры, считываемые всеми программами-клиентами MariaDB клиенты и MariaDB Server. Это полезно для параметров, таких как сокет и порт, которые общие для сервера и клиентов. |
[client-mariadb] |
Параметры, считываемые всеми программами-клиентами MariaDB клиенты. |
Переменные mariadb-admin
Переменные можно установить с помощью --variable-name=value.
| Переменные и булевы параметры | Значение |
|---|---|
count |
0 |
debug-check |
FALSE |
debug-info |
FALSE |
force |
FALSE |
compress |
FALSE |
character-sets-dir |
(Значение по умолчанию отсутствует) |
default-character-set |
(Значение по умолчанию отсутствует) |
host |
(Значение по умолчанию отсутствует) |
no-beep |
FALSE |
port |
3306 |
relative |
FALSE |
socket |
/var/run/mysqld/mysqld.sock |
sleep |
0 |
ssl |
FALSE |
ssl-ca |
(Значение по умолчанию отсутствует) |
ssl-capath |
(Значение по умолчанию отсутствует) |
ssl-cert |
(Значение по умолчанию отсутствует) |
ssl-cipher |
(Значение по умолчанию отсутствует) |
ssl-key |
(Значение по умолчанию отсутствует) |
ssl-verify-server-cert |
FALSE |
user |
(Значение по умолчанию отсутствует) |
verbose |
FALSE |
vertical |
FALSE |
connect_timeout |
43200 |
shutdown_timeout |
3600 |
Команды mariadb-admin
mariadb-admin [options] command [command-arg] [command [command-arg]] ...
Команда — это одна или несколько из следующих команд. Команды могут быть сокращены до уникального префикса.
| Команда | Описание |
|---|---|
create databasename |
Создать новую базу данных. |
debug |
Указать серверу записать отладочную информацию в журнал. |
drop databasename |
Удалить базу данных и все её таблицы. |
extended-status |
Возвращает все переменные состояния и их значения. |
flush-all-statistics |
Очистить все таблицы статистики. |
flush-all-status |
Очистить состояние и статистику. |
flush-binary-log |
Очистить бинарный журнал. |
flush-client-statistics |
Очистить статистику клиентов. |
flush-engine-log |
Очистить журнал движка. |
flush-error-log |
Очистить журнал ошибок. |
flush-general-log |
Очистить журнал общих запросов. |
flush-hosts |
Очистить кэшированные хосты. |
flush-index-statistics |
Очистить статистику индексов. |
flush-logs |
Очистить все журналы. |
flush-privileges |
Перезагрузить таблицы привилегий (то же самое, что и reload). |
flush-relay-log |
Очистить журнал ретрансляции. |
flush-slow-log |
Очистить журнал медленных запросов. |
flush-ssl |
Очистить сертификаты SSL. Добавлено в MariaDB 10.6.0. |
flush-status |
Очистить переменные состояния. |
flush-table-statistics |
Очистить статистику таблиц. |
flush-tables |
Очистить все таблицы. |
flush-threads |
Очистить кэш потоков. |
flush-user-resources |
Очистить ресурсы пользователя. |
flush-user-statistics |
Очистить статистику пользователя. |
kill id,id,... |
Убить потоки mysql. |
password new-password |
Изменить старый пароль на новый-пароль. Новый пароль можно передать в командной строке как следующий аргумент (например, mariadb-admin password "new_password", или можно опустить (пока за ним не следует другая команда), в этом случае пользователя попросят ввести пароль. Если пароль содержит специальные символы, он должен быть заключен в кавычки. В Windows кавычки могут быть только двойными, так как одинарные кавычки предполагаются частью пароля. Если сервер был запущен с параметром --skip-grant-tables, изменение пароля таким способом не повлияет. |
old-password new-password |
Изменить старый пароль на новый-пароль, используя старый формат до MySQL 4.1. |
ping |
Проверить, жив ли mysqld. Статус 0, если сервер запущен (даже в случае ошибки, такой как запрет доступа), 1, если нет. |
processlist |
Показать список активных потоков на сервере, эквивалентно SHOW PROCESSLIST. С --verbose, эквивалентно SHOW FULL PROCESSLIST. |
reload |
Перезагрузить таблицы привилегий. |
refresh |
Очистить все таблицы и закрыть и открыть файлы журналов. |
shutdown |
Останов сервера путём выполнения команды SHUTDOWN на сервере. Если соединение с локальным сервером через файл сокета Unix, mariadb-admin ждёт, пока файл идентификатора процесса сервера не будет удалён, чтобы убедиться, что сервер остановился должным образом. См. также параметр --wait-for-all-slaves . |
status |
Выводит краткое сообщение о состоянии с сервера. |
start-all-slaves |
Запустить все реплики. |
start-slave |
Запустить репликацию на реплицирующем сервере. |
stop-all-slaves |
Остановить все реплики. |
stop-slave |
Остановить репликацию на реплицирующем сервере. |
variables |
Выводит доступные переменные. |
version |
Возвращает версию, а также информацию о состоянии с сервера. |
Команда shutdown и опция --wait-for-all-slaves
Опция --wait-for-all-slaves была добавлена впервые в MariaDB 10.4.4. При выключении первичного сервера и выполнении нормальной процедуры остановки, первичный сервер убивает потоки клиентов в случайном порядке. По умолчанию первичный сервер также рассматривает свои потоки для выгрузки бинарного лога как обычные клиентские потоки. В результате потоки выгрузки бинарного лога могут быть убиты, пока клиентские потоки всё ещё существуют, и это означает, что данные могут быть записаны на первичном сервере во время обычной остановки, которые не будут реплицированы. Это верно даже если используется полусинхронная репликация.
В MariaDB 10.4 и более поздних версиях эту проблему можно решить, остановив сервер с помощью утилиты mariadb-admin и указав опцию --wait-for-all-slaves утилите и выполнив команду shutdown с помощью утилиты. Например:
mariadb-admin --wait-for-all-slaves shutdown
Когда предоставляется опция --wait-for-all-slaves, сервер убивает свои потоки выгрузки бинарного лога только после того, как все клиентские потоки будут убиты, и завершает остановку только после того, как последний бинарный журнал будет отправлен всем подключённым репликам.
См. Потоки репликации: Потоки выгрузки бинарного лога и процесс остановки для получения дополнительной информации.
Примеры
Быстрая проверка того, что делает сервер:
shell> mariadb-admin status Uptime: 8023 Threads: 1 Questions: 14 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.1 shell> mariadb-admin processlist +----+-------+-----------+----+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------+-----------+----+---------+------+-------+------------------+ .... +----+-------+-----------+----+---------+------+-------+------------------+
Более подробная информация о происходящих 'прямо сейчас' изменениях (полезно для устранения неполадок на медленном сервере):
shell> mariadb-admin --relative --sleep=1 extended-status | grep -v " 0 "
Проверьте переменные работающего сервера:
shell> mariadb-admin variables | grep datadir | datadir | /my/data/ |
Использование сокращённого префикса для команды version:
shell> mariadb-admin ver mariadb-admin from 11.1.0-preview-MariaDB, client 9.1 for linux-systemd (x86_64) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 11.1.0-preview-MariaDB Protocol version 10 Connection localhost via TCP/IP TCP port 11100 Uptime: 3 min 21 sec Threads: 1 Questions: 1 Slow queries: 0 Opens: 17 Open tables: 10 Queries per second avg: 0.004
Другие способы остановки mysqld (Unix)
Если вы получаете ошибку:
mariadb-admin: shutdown failed; error: 'Access denied; you need (at least one of) the SHUTDOWN privilege(s) for this operation'
Это означает, что вы не использовали mariadb-admin с пользователем, обладающим привилегией SUPER или SHUTDOWN.
Если вы не знаете пароль пользователя, вы всё ещё можете остановить процесс mysqld с помощью системной kill команды:
kill -SIGTERM pid-of-mysqld-process
Вышеприведённое идентично mariadb-admin shutdown.
В Windows следует использовать:
NET STOP MySQL
Вы можете использовать команду SHUTDOWN с любого клиента.
См. также
- Команда SHUTDOWN
- mytop, программа типа 'top' для MariaDB/MySQL, которая позволяет увидеть, что делает сервер. Оптимизированный для MariaDB mytop включён в MariaDB 5.3
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/mariadb-admin/