mariadb Командная строка
mariadb — это простая оболочка SQL (с возможностями GNU readline).
Начиная с MariaDB 10.4.6, mariadb — это символическая ссылка на mysql, командную строку клиента.
Начиная с MariaDB 10.5.2, mariadb — это имя командной строки клиента, с mysql как символической ссылкой.
Описание командной строки mariadb
mariadb поддерживает интерактивное и неинтерактивное использование. При интерактивном использовании результаты запросов представляются в формате ASCII-таблицы. При неинтерактивном использовании (например, в качестве фильтра) результат представляется в формате, разделенном табуляцией. Формат вывода можно изменить с помощью командных опций.
Если у вас проблемы из-за недостаточной памяти для больших наборов результатов, используйте опцию --quick. Это заставляет mariadb извлекать результаты с сервера по строкам, а не извлекать весь набор результатов и буферизовать его в памяти перед отображением. Это делается путем возвращения набора результатов с помощью функции mysql_use_result() API C в библиотеке клиент/сервер, а не mysql_store_result().
Использование mariadb очень просто. Вызовите его из командной строки следующим образом:
mariadb db_name
Или:
mariadb --user=user_name --password=your_password db_name
Затем введите оператор SQL, завершите его “;”, \g или \G и нажмите Enter.
Нажатие клавиш Control-C заставляет mariadb попытаться прервать текущее оператор. Если это невозможно сделать, или нажатие Control-C повторено до завершения прерывания оператора, mariadb завершит работу.
Вы можете выполнить операторы SQL в файле скрипта (файле пакетных заданий) так:
mariadb db_name < script.sql > output.tab
Использование mariadb
Команда для использования mariadb и общий синтаксис:
mariadb <options>
Опции
mariadb поддерживает следующие опции:
| Опция | Описание |
|---|---|
-?, --help
|
Отобразить это справку и выйти. |
-I, --help
|
Синоним для -? |
--abort-source-on-error |
Прервать операции с 'именем файла-источника' в случае ошибок. |
--auto-rehash |
Включить автоматическое перехеширование. Эта опция включена по умолчанию, что включает автодополнение названий баз данных, таблиц и столбцов. Используйте --disable-auto-rehash, --no-auto-rehash или skip-auto-rehash для отключения перехеширования. Это ускоряет запуск mariadb, но вам необходимо выполнить команду rehash, если вы хотите использовать автодополнение названий. Для автодополнения введите начальную часть имени и нажмите Tab. Если имя однозначно, mariadb его дополнит. В противном случае вы можете нажать Tab ещё раз, чтобы увидеть возможные имена, начинающиеся с того, что вы набрали. Автодополнение не происходит, если нет базы данных по умолчанию. |
-A, --no-auto-rehash
|
Отключение автоматического перехеширования. Необходимо использовать 'rehash', чтобы получить автодополнение таблиц и полей. Это ускоряет запуск mariadb и отключает перехеширование при повторном подключении. |
--auto-vertical-output |
Автоматически переключиться на вертикальный режим вывода, если результат шире, чем ширина терминала. |
-B, --batch
|
Выводить результаты с табуляцией в качестве разделителя столбцов, по одной строке на новую строку. С этой опцией mariadb не использует файл истории. Режим пакетной обработки приводит к нетабличному формату вывода и экранированию специальных символов. Экранирование можно отключить, используя режим raw; см. описание для опции --raw. (Включает --silent.) |
--binary-mode |
По умолчанию запрещено ASCII '\0' и '\r\n' преобразуется в '\n'. Этот переключатель отключает обе эти функции, а также парсинг всех команд клиента, кроме \C и DELIMITER, в неинтерактивном режиме (для ввода, перенаправленного в mariadb или загружаемого с помощью команды 'source'). Это необходимо при обработке вывода из mariadb-binlog, который может содержать BLOB-данные. |
--character-sets-dir=name |
Директория для файлов наборов символов наборов символов. |
--column-names |
Выводить имена столбцов в результатах. (По умолчанию включено; отключить с помощью --skip-column-names.) |
--column-type-info |
Отображать информацию о типе столбцов. |
-c, --comments
|
Сохранять комментарии. Отправлять комментарии на сервер. По умолчанию --skip-comments (отбрасывать комментарии), включить с помощью --comments. |
-C, --compress
|
Сжимать всю информацию, передаваемую между клиентом и сервером, если обе стороны поддерживают сжатие. |
--connect-expired-password |
Уведомить сервер о том, что этот клиент готов обрабатывать срок действия пароля в режиме песочницы, даже если --batch было указано. С версии MariaDB 10.4.3. |
--connect-timeout=num |
Количество секунд до таймаута подключения. По умолчанию ноль. |
-D, --database=name
|
База данных для использования. |
-# [options], --debug[=options]
|
В сборках для отладки записывать отладочный журнал. Типичная строка debug_options - d:t:o,file_name. По умолчанию d:t:o,/tmp/mysql.trace. |
--debug-check |
Проверять использование памяти и открытых файлов при выходе. |
-T, --debug-info
|
Выводить отладочную информацию при выходе. |
--default-auth=plugin |
Подключаемый модуль аутентификации клиента по умолчанию. |
--default-character-set=name |
Установить набор символов по умолчанию набора символов. Распространённая проблема, которая может возникнуть, когда операционная система использует utf8 или другой многобайтовый набор символов, заключается в том, что вывод из клиента mariadb отформатирован неправильно, так как клиент MariaDB по умолчанию использует набор символов latin1. Обычно такие проблемы можно исправить, используя эту опцию, чтобы клиент вместо этого использовал набор символов системы. Если установлено auto, набор символов берётся из среды клиента (LC_CTYPE в Unix). |
--defaults-extra-file=file |
Прочитать этот файл после чтения глобальных файлов. Должен быть указан первым. |
--defaults-file=file |
Читать только значения опций по умолчанию из указанного файла. Должен быть указан первым. |
--defaults-group-suffix=suffix |
В дополнение к указанным группам также прочитать группы с этим суффиксом. |
--delimiter=name |
Разделитель, который будет использоваться. По умолчанию - точка с запятой (";"). |
--enable-cleartext-plugin |
Устаревшая опция. Существует только для совместимости с MySQL. С версии MariaDB 10.3.36. |
-e, --execute=name
|
Выполнить оператор и выйти. Отключает --force и файл истории. Формат вывода по умолчанию такой же, как и при использовании --batch. |
-f, --force
|
Продолжать даже при возникновении SQL ошибки. Устанавливает --abort-source-on-error в 0. |
-h, --host=name
|
Подключиться к хосту. |
-H, --html
|
Производить вывод в формате HTML. |
-U, --i-am-a-dummy
|
Синоним для опции --safe-updates, -U. |
-i, --ignore-spaces
|
Игнорировать пробелы после имён функций. Позволяет иметь пробелы (включая символы табуляции и перевода строки) между именем функции и '('. Недостатком является то, что это приводит к тому, что встроенные функции становятся зарезервированными словами. |
--init-command=str |
SQL-команда, выполняемая при подключении к серверу MariaDB. Будет автоматически повторно выполняться при повторном подключении. |
--line-numbers |
Выводить номера строк для ошибок. (По умолчанию включено; отключить с помощью --skip-line-numbers.) |
--local-infile |
Включает или отключает возможность LOCAL для LOAD DATA INFILE. Без значения, опция включает LOCAL. Опция может быть указана как --local-infile=0 или --local-infile=1 для явного отключения или включения LOCAL. Включение LOCAL не имеет эффекта, если сервер его также не поддерживает. |
--max-allowed-packet=num |
Максимальная длина пакета для отправки или получения от сервера. По умолчанию 16 МБ, максимум 1 ГБ. |
--max-join-size=num |
Автоматический лимит строк в соединении при использовании --safe-updates. По умолчанию 1000000. |
-G, --named-commands
|
Включить именованные команды. Именованные команды - это внутренние команды mariadb (см. ниже). При включении именованные команды можно использовать с любой строки запроса, иначе только с первой строки, до нажатия Enter. Разрешаются команды в длинном формате, а не только в коротком. Например, quit и \q распознаются. Отключить с помощью --disable-named-commands. По умолчанию эта опция отключена. |
--net-buffer-length=num |
Размер буфера для TCP/IP и сокетного взаимодействия. По умолчанию 16 КБ. |
-b, --no-beep
|
Отключить звуковой сигнал об ошибке. |
--no-defaults |
Не читать параметры по умолчанию из файла опций. Должен быть указан первым. |
-o, --one-database
|
Игнорировать операторы, кроме тех, которые возникают, когда база данных по умолчанию - та, что указана в командной строке. Эта фильтрация ограничена и основана только на операторах USE. Это полезно для пропуска обновлений других баз данных в двоичном журнале. |
--pager[=name] |
Программа для отображения результатов (только Unix). Если вы не укажете опцию, программа по умолчанию берется из переменной среды PAGER. Допустимыми программами являются less, more, cat [> filename] и т.д. См. также интерактивную справку (\h). Эта опция не работает в пакетном режиме. Отключить с помощью --disable-pager. По умолчанию эта опция отключена. |
-p, --password[=name]
|
Пароль для подключения к серверу. Если используется короткая форма опции (-p), пробела между опцией и паролем быть не должно. Если вы опустите значение пароля после --password или -p опции в командной строке, mariadb попросит его. Указание пароля в командной строке считается небезопасным. Вы можете использовать файл опций, чтобы избежать ввода пароля в командной строке. |
--plugin-dir=name |
Директория для подключаемых модулей клиента. |
-P, --port=num
|
Номер порта для подключения или 0 для использования по умолчанию, в порядке приоритета: my.cnf, $MYSQL_TCP_PORT, /etc/services, встроенный по умолчанию (3306). |
--print-defaults |
Вывести список аргументов программы и выйти. Должен быть указан первым. |
--progress-reports |
Получать отчеты о ходе выполнения для длительных команд (таких как ALTER TABLE). (По умолчанию включено; отключить с помощью --skip-progress-reports.) |
--prompt=name |
Установить приглашение mariadb на это значение. См. команду приглашения для параметров. |
--protocol=name |
Протокол для подключения (tcp, socket, pipe, memory). |
-q, --quick
|
Не кешировать результат, выводить его построчно. Это может замедлить сервер, если вывод приостановлен. Не использует файл истории. |
-r, --raw
|
Для табличного вывода «рамки» вокруг столбцов позволяют отличить одно значение столбца от другого. Для нетабличного вывода (например, при пакетном режиме или когда указана опция --batch или --silent) специальные символы экранируются в выводе, чтобы их можно было легко идентифицировать. Новая строка, табуляция, NUL и обратная косая черта выводятся как \n, \t, \0, и . Опция --raw отключает экранирование этих символов. |
--reconnect |
Переподключиться, если соединение разорвано. Этот параметр включён по умолчанию. Отключить с помощью --disable-reconnect или skip-reconnect. |
-U, --safe-updates
|
Разрешить только те операторы UPDATE и DELETE, которые указывают строки для изменения, используя ключевые значения. Если вы задали этот параметр в файле параметров, вы можете переопределить его, используя --safe-updates в командной строке. Более подробная информация в разделе использование параметра --safe-updates. |
--secure-auth |
Отклонять подключения клиентов к серверу, если они используют старый протокол (до MySQL 4.1.1). По умолчанию false (в отличие от MySQL с 5.6, где по умолчанию true). |
--select-limit=num |
Автоматическое ограничение для SELECT при использовании --safe-updates. По умолчанию 1000. |
--server-arg=name |
Отправить серверу в качестве параметра. |
--shared-memory-base-name=name |
Имя общей памяти для использования в подключениях Windows с использованием общей памяти с локальным сервером (запущенным с параметром --shared-memory). Регистрозависимый. |
--show-warnings |
Выводить предупреждения после каждого оператора. Применимо к интерактивному и пакетному режиму. |
--sigint-ignore |
Игнорировать сигналы SIGINT (обычно CTRL-C). |
-s, --silent
|
Более тихий режим. Этот параметр можно указать несколько раз, чтобы получить всё меньше и меньше вывода. Этот параметр приводит к нетабличному формату вывода и экранированию специальных символов. Экранирование можно отключить с помощью режима raw; см. описание параметра --raw. |
-L, --skip-auto-rehash
|
Отключить автоматическое перехеширование. Смотрите --auto-rehash. |
-N, --skip-column-names
|
Не записывать имена столбцов в результаты. Смотрите --column-names. |
-L, --skip-comments
|
Игнорировать комментарии. По умолчанию включено, смотрите --comments для включения. |
-L, --skip-line-numbers
|
Не записывать номера строк для ошибок. Смотрите --line-numbers. |
-L, --skip-progress-reports
|
Отключает получение отчётов о ходе выполнения для длительно выполняемых команд. Смотрите --progress-reports. |
-L, --skip-reconnect
|
Не переподключаться при потере соединения. Смотрите --reconnect. |
-S, --socket=name
|
Для подключений к localhost, имя файла Unix-соккета или, в Windows, имя именованной трубы. |
--ssl |
Включает TLS. TLS также включён, даже без установки этого параметра, когда установлены определённые другие параметры TLS. Параметр --ssl по умолчанию не включает проверку сертификата сервера. Для проверки сертификата сервера необходимо указать параметр --ssl-verify-server-cert. Включено по умолчанию начиная с MariaDB 10.10. |
--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 |
Включает проверку сертификата сервера. По умолчанию отключено. |
-t, --table
|
Отображать вывод в табличном формате. Это значение по умолчанию для интерактивного использования, но может быть использовано для создания табличного вывода в пакетном режиме. |
--tee=name |
Добавить всё в outfile. Смотрите также интерактивную помощь (\h). Не работает в пакетном режиме. Отключить с помощью --disable-tee. По умолчанию отключено. |
--tls-version=name |
Этот параметр принимает список TLS-версий, разделённых запятыми. TLS-версия будет включена только если она присутствует в списке. Все другие TLS-версии не будут разрешены. Дополнительная информация в Обзоре безопасных соединений: TLS-версии. Добавлен в MariaDB 10.4.6. |
-n, --unbuffered
|
Очистить буфер после каждого запроса. |
-u, --user=name
|
Пользователь для входа, если не текущий пользователь. |
-v, --verbose
|
Выводить больше информации (-v -v -v выводит табличный формат вывода). |
-V, --version
|
Вывести информацию о версии и завершить работу. |
-E, --vertical
|
Вывести результат запроса (строки) вертикально. Используйте разделитель \G, чтобы применить его к конкретному оператору, если этот параметр не включён. |
-w, --wait
|
При невозможности установить соединение, ожидать и повторно пытаться подключиться вместо прерывания. |
-X, --xml
|
Создавать вывод в формате XML. Дополнительная информация в mariadb-dump --xml option. |
Файлы параметров
Помимо чтения параметров из командной строки, mariadb также может читать параметры из файлов параметров. Если в файле параметров mariadb предоставлен неизвестный параметр, он игнорируется.
Следующие параметры относятся к тому, как инструменты командной строки MariaDB обрабатывают файлы параметров. Они должны быть указаны как первый аргумент в командной строке:
| Параметр | Описание |
|---|---|
--print-defaults |
Вывести список аргументов программы и завершить работу. |
--no-defaults |
Не читать параметры по умолчанию из какого-либо файла параметров. |
--defaults-file=# |
Читать параметры по умолчанию только из указанного файла #. |
--defaults-extra-file=# |
Читать этот файл после чтения глобальных файлов. |
--defaults-group-suffix=# |
Помимо стандартных групп параметров, также читать группы параметров с этим суффиксом. |
mariadb связан с MariaDB Connector/C. Однако MariaDB Connector/C пока не поддерживает разбор файлов параметров для этого клиента. Это всё ещё выполняется кодом разбора файлов параметров сервера. Дополнительная информация в MDEV-19035.
Группы параметров
mariadb считывает параметры из следующих групп параметров из файлов параметров:
| Группа | Описание |
|---|---|
[mysql] |
Параметры, считываемые mysql, которые включают как MariaDB Server, так и MySQL Server. |
[mariadb-client] |
Параметры, считываемые mariadb. Доступны начиная с MariaDB 10.4.6. |
[client] |
Параметры, считываемые всеми программами клиентов MariaDB и MySQL клиентскими программами, что включает как MariaDB, так и MySQL клиентов. Например, mysqldump. |
[client-server] |
Параметры, считываемые всеми программами клиентов MariaDB клиентскими программами и MariaDB Server. Это полезно для параметров, таких как сокет и порт, которые общие для сервера и клиентов. |
[client-mariadb] |
Параметры, считываемые всеми программами клиентов MariaDB клиентскими программами. |
Как указать используемый протокол при подключении к серверу
Вы можете принудительно указать используемый протокол для подключения к серверу mariadbd , задав параметру protocol одно из следующих значений: tcp, socket, pipe или memory.
Если protocol не указан, до MariaDB 10.6.1, параметры подключения командной строки, которые не принуждают протокол, игнорируются.
Начиная с MariaDB 10.6.1, параметр подключения, указанный в командной строке (например, --port=3306), будет принудительно устанавливать свой тип. Используется протокол, соответствующий параметру подключения, например, при указании --port создаётся TCP/IP-соединение.
Если в командной строке указано несколько или вообще не указано параметров подключения, происходит следующее:
Linux/Unix
- Если
hostnameне указан илиhostnameимеет значениеlocalhost, используются Unix-сокеты. - В других случаях (если задан
hostnameи он не равенlocalhost) используется TCP/IP-соединение через параметрport.
Обратите внимание, что localhost — специальное значение. Использование 127.0.0.1 не эквивалентно этому. Последнее подключится к серверу mariadbd через TCP/IP.
Windows
- Если
shared-memory-base-nameуказан, иhostnameне указан илиhostnameимеет значениеlocalhost, подключение произойдёт через общую память. - Если
shared-memory-base-nameне указан иhostnameне указан илиhostnameимеет значениеlocalhost, подключение произойдёт через именованные каналы Windows. - Именованные каналы также будут использоваться, если библиотека клиента
libmysql/libmariadbобнаружит, что клиент не поддерживает TCP/IP. - В остальных случаях используется TCP/IP-соединение через параметр
port.
Как проверить используемый протокол
Команда status отображает информацию об используемом протоколе:
shell> mariadb test Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 10 Server version: 10.2.2-MariaDB-valgrind-max-debug Source distribution Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [test]> status; -------------- mysql Ver 15.1 Distrib 10.0.25-MariaDB, for Linux (x86_64) using readline 5.2 Connection id: 10 Current database: test Current user: monty@localhost ... Connection: Localhost via UNIX socket ... UNIX socket: /tmp/mysql-dbug.sock
Команды mariadb
Также существует ряд команд, которые можно выполнить внутри клиента. Обратите внимание, что все текстовые команды должны стоять в начале строки и заканчиваться ";"
| Команда | Описание |
|---|---|
?, \?
|
Синоним для `help'. |
clear, \c
|
Очистить текущую команду ввода. |
connect, \r
|
Подключиться к серверу снова. Дополнительные аргументы — db и host. |
delimiter, \d
|
Установить разделитель для команды. |
edit, \e
|
Редактировать команду с помощью $EDITOR. |
ego, \G
|
Отправить команду серверу mariadb, отобразить результат вертикально. |
exit, \q
|
Выйти из mariadb. То же, что и quit. |
go, \g
|
Отправить команду серверу mariadb. |
help, \h
|
Отобразить эту справку. |
nopager, \n
|
Отключить вывод страницы, вывести в stdout. |
notee, \t
|
Не записывать в outfile. |
pager, \P
|
Установить PAGER [to_pager]. Вывести результаты запроса через PAGER. |
print, \p
|
Отобразить текущую команду. |
prompt, \R
|
Изменить ваш prompt mariadb. См. команду prompt для опций. |
quit, \q
|
Выйти из mariadb. |
rehash, \#
|
Перестроить хеш автодополнения. |
source, \.
|
Выполнить файл скрипта SQL. Принимает имя файла в качестве аргумента. |
status, \s
|
Получить информацию о статусе от сервера. |
system, \!
|
Выполнить системную оболочку команд. Работает только в системах Unix-подобного типа. |
tee, \T
|
Установить outfile [to_outfile]. Добавить всё в указанный outfile. |
use, \u
|
Использовать другую базу данных. Принимает имя базы данных в качестве аргумента. |
charset, \C
|
Переключиться на другой набор символов. Может потребоваться для обработки binlog с наборами символов с несколькими байтами. |
warnings, \W
|
Отображать предупреждения после каждой команды. |
nowarning, \w
|
Не отображать предупреждения после каждой команды. |
Файл mysql_history
В Unix, клиент mariadb записывает историю выполненных команд в файл истории. По умолчанию, этот файл называется .mysql_history и создаётся в вашем домашнем каталоге. Чтобы указать другой файл, установите значение переменной среды MYSQL_HISTFILE.
Файл .mysql_history должен быть защищён с ограниченным режимом доступа, поскольку в него может быть записана чувствительная информация, например, текст SQL-команд, содержащих пароли.
Если вы не хотите сохранять историю, сначала удалите .mysql_history, если он существует, а затем используйте один из следующих способов:
- Установите переменную MYSQL_HISTFILE в /dev/null. Чтобы это значение применялось каждый раз при входе в систему, поместите его в один из файлов запуска вашей оболочки.
- Создайте .mysql_history как символическую ссылку на /dev/null:
shell> ln -s /dev/null $HOME/.mysql_history
Это нужно сделать только один раз.
Команда prompt
Команда prompt переконфигурирует стандартный prompt \N [\d]>. Строка для определения prompt может содержать следующие специальные последовательности.
| Опция | Описание |
|---|---|
\c |
Счётчик, который увеличивается для каждой выполняемой команды. |
\D |
Полная текущая дата. |
\d |
Текущая база данных. |
\h |
Хост сервера. |
\l |
Текущий разделитель. |
\m |
Минуты текущего времени. |
\n |
Символ новой строки. |
\O |
Текущий месяц в формате из трёх букв (Янв, Фев, ...). |
\o |
Текущий месяц в числовом формате. |
\P |
am/pm. |
\p |
Текущий TCP/IP порт или файл сокета. |
\R |
Текущее время в 24-часовом формате (0–23). |
\r |
Текущее время в стандартном 12-часовом формате (1–12). |
\S |
Точка с запятой. |
\s |
Секунды текущего времени. |
\t |
Символ табуляции. |
\U |
Полное имя вашей учётной записи user_name@host_name. |
\u |
Ваше имя пользователя. |
\v |
Версия сервера. |
\w |
Текущий день недели в формате из трёх букв (Пнд, Вт, ...). |
\Y |
Текущий год, четыре цифры. |
\y |
Текущий год, две цифры. |
\_ |
Пробел. |
\ |
Пробел (пробел следует за обратным слешем). |
\' |
Одинарная кавычка. |
\" |
Двойная кавычка. |
\ \ |
Буквальный символ обратного слеша “\”. |
\x |
x, для любого “x”, не указанного выше. |
Советы по работе с mariadb
В этом разделе описаны некоторые приёмы, которые помогут вам эффективнее использовать mariadb.
Отображение результатов запроса вертикально
Результаты некоторых запросов намного удобнее читать в вертикальном формате, вместо обычной горизонтальной таблицы. Запросы можно отобразить вертикально, завершив их символом \G вместо точки с запятой. Например, значения длинных текстов, содержащие новые строки, часто намного легче читать с вертикальным выводом:
mariadb> SELECT * FROM mails WHERE LENGTH(txt) < 300 LIMIT 300,1\G
*************************** 1. row ***************************
msg_nro: 3068
date: 2000-03-01 23:29:50
time_zone: +0200
mail_from: Monty
reply: monty@no.spam.com
mail_to: "Thimble Smith" <tim@no.spam.com>
sbj: UTF-8
txt: >>>>> "Thimble" == Thimble Smith writes:
Thimble> Hi. I think this is a good idea. Is anyone familiar
Thimble> with UTF-8 or Unicode? Otherwise, I´ll put this on my
Thimble> TODO list and see what happens.
Yes, please do that.
Regards,
Monty
file: inbox-jani-1
hash: 190402944
1 row in set (0.09 sec)
Использование параметра --safe-updates
Для начинающих полезным параметром запуска является --safe-updates (или --i-am-a-dummy, что дает тот же эффект). Он полезен в ситуациях, когда вы, возможно, выполнили оператор DELETE FROM tbl_name , но забыли WHERE оператор. Обычно такой оператор удаляет все строки из таблицы. С помощью --safe-updates, вы можете удалять строки только, указывая значения ключей, которые их идентифицируют. Это помогает предотвратить ошибки.
При использовании опции --safe-updates, mariadb выполняет следующий оператор при подключении к серверу MariaDB:
SET sql_safe_updates=1, sql_select_limit=1000, sql_max_join_size=1000000;
Оператор SET имеет следующие эффекты:
- Вам запрещено выполнять оператор UPDATE или DELETE, если вы не укажете ограничение ключа в условии WHERE или не предоставите условие LIMIT (или оба). Например:
UPDATE tbl_name SET not_key_column=val WHERE key_column=val; UPDATE tbl_name SET not_key_column=val LIMIT 1;
- Сервер ограничивает все большие
SELECTрезультаты 1000 строками, если оператор не содержитLIMITусловия. - Сервер прерывает операторы с несколькими таблицами
SELECT, которые, вероятно, должны просмотреть более 1 000 000 комбинаций строк.
Для задания пределов, отличных от 1000 и 1 000 000, вы можете переопределить значения по умолчанию, используя опции --select_limit и --max_join_size.
mariadb --safe-updates --select_limit=500 --max_join_size=10000
Отключение автоматического переподключения mariadb
Если клиент mariadb теряет подключение к серверу во время отправки оператора, он немедленно и автоматически пытается подключиться к серверу один раз и снова отправить оператор. Однако даже если mariadb успешно переподключится, ваше первое подключение завершено, и все ваши предыдущие объекты сеанса и настройки потеряны: временные таблицы, режим автозавершения и пользовательские и сеансовые переменные. Также любые текущие транзакции отменяются. Это поведение может быть опасным, как показано в следующем примере, где сервер был выключен и перезапущен между первым и вторым операторами без вашего ведома:
mariadb> SET @a=1; Query OK, 0 rows affected (0.05 sec) mariadb> INSERT INTO t VALUES(@a); ERROR 2006: MySQL server has gone away No connection. Trying to reconnect... Connection id: 1 Current database: test Query OK, 1 row affected (1.30 sec) mariadb> SELECT * FROM t; +------+ | a | +------+ | NULL | +------+
Переменная пользователя @a была потеряна вместе с подключением, и после переподключения она не определена. Если важно, чтобы mariadb завершился с ошибкой, если подключение было потеряно, вы можете запустить клиент mariadb с опцией --skip-reconnect.
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/mariadb-command-line-client/