Spec-Zone.ru › MariaDB

mariadb-admin

MariaDB начиная с 10.4.6

От MariaDB 10.4.6, mariadb-admin является символьной ссылкой на mysqladmin, программу администрирования демона mysqld.

MariaDB начиная с 10.5.2

От 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
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно компанией 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/mariadb-admin/

Spec-Zone.ru

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