Клиент MySQL (MariaDB) при подключении к серверу СУБД в приглашении командной строки по умолчанию показывает выбранную для использования базу данных, а также имя СУБД (например, MariaDB или MySQL).
Возможно к этой информации вы хотите добавить имя пользователя, имя хоста на котором запущен сервер MySQL (MariaDB), номер порта, текущую дату и время или, например, счётчик выполненных SQL запросов. Всё это возможно — вы можете настроить приглашение командной строки клиента MySQL (MariaDB) под свой вкус и свои нужды.
Изменить приглашение командной строки в MySQL и MariaDB можно на время одной сессии или для каждой сессии. В любом случае эту настройку легко изменить и отключить.
Прежде чем перейти к способам настройки приглашения командной строки MySQL (MariaDB), ознакомимся с условными обозначениями, используемыми в качестве указания формата.
Опция | Описание |
---|---|
\C | Текущий идентификатор соединения |
\c | Счётчик, который увеличивается для каждого введённого вами оператора. |
\D | Полная текущая дата |
\d | База данных по умолчанию |
\h | Хост сервера |
\l | Текущий разделитель |
\m | Минуты текущего времени |
\n | Символ новой строки |
\O | Текущий месяц в трёхбуквенном формате (январь, февраль, …) |
\o | Текущий месяц в числовом формате |
\P | До полудня / после полудня |
\p | Текущий порт TCP/IP или файл сокета. |
\R | Текущее время в 24-часовом военном формате (0–23). |
\r | Текущее время, стандартное 12-часовое время (1–12). |
\S | Точка с запятой |
\s | Секунды текущего времени |
\T | Напечатать звёздочку (*), если текущий сеанс находится внутри блока транзакции. |
\t | Символ табуляции |
\U | Ваше полное имя учётной записи в формате имя_пользователя@имя_хоста |
\u | Ваш логин |
\v | Версия сервера |
\w | Текущий день недели в трёхбуквенном формате (пн, вт, …) |
\Y | Текущий год, четыре цифры |
\y | Текущий год, две цифры |
\_ | Пробел |
\ | Пробел (пробел следует за обратной косой чертой) |
\' | Одиночная кавычка |
\" | Двойная кавычка |
\\ | Буквальный \ символ обратной косой черты |
\x | x, для любого «x», не указанного выше |
1. Изменение приглашения командной строки MySQL (MariaDB) с помощью переменной окружения
Используйте переменную среды. Вы можете установить переменную среды MYSQL_PS1 указав в ней нужный вам формат приглашения командной строки. Например:
export MYSQL_PS1="(\u@\h) [\d]> "
Как вы можете видеть на скриншоте, по умолчанию используется следующее приглашение командной строки:
MariaDB [(none)]>
После экспорта переменной MYSQL_PS1 и повторного подключения к серверу MariaDB, приглашение командной строки изменилось на:
(root@localhost) [(none)]>
Чтобы не вводить команду экспорта переменной каждый раз, вы можете сохранить её в файле .bashrc (для оболочки Bash).
Все файлы начинающиеся с точки, в том числе и файл .bashrc, по умолчанию в Linux считаются скрытыми. То есть эти файлы не отображаются, если не включена опция «показывать скрытые файлы». При этом вы без проблем можете открыть данный файл в командной строке:
gedit ~/.bashrc
Если вы используете другую оболочку, то имя файла будет отличаться.
Смотрите также: Как узнать, какая оболочка используется в Linux
Либо вы можете создать ярлык для подключения к серверу баз данных примерно со следующим содержимым.
#!/bin/bash export MYSQL_PS1="(\u@\h) [\d]> " mariadb -u root -p
2. Изменение приглашения командной строки MySQL (MariaDB) в опции строки команды
Используйте параметр командной строки. Вы можете установить параметр --prompt в командной строке для mysql/mariadb. Например:
mysql --prompt="(\u@\h) [\d]> " -u root -p
3. Изменение приглашения командной строки MySQL (MariaDB) в конфигурационном файле
Смотрите также: Как определить расположение и имя конфигурационного файла MySQL (MariaDB). Как узнать название групп для конфигурационных файлов MySQL и MariaDB
Откройте конфигурационный файл /etc/my.cnf:
sudo gedit /etc/my.cnf
И добавьте туда формат приглашения командной строки в группу [mysql]:
[mysql] prompt=(\\u@\\h) [\\d]>\\_
Обратите внимание, что в этом примере обратная косая черта удваивается. Если вы устанавливаете формат приглашения командной строки с помощью настройки prompt в файле опций, желательно удвоить обратную косую черту, если она встречается. Существует некоторое совпадение набора допустимых параметров подсказки и набора специальных escape-последовательностей, которые распознаются в файлах параметров. Такое перекрытие (совпадение) может вызвать проблемы, если вы используете одиночные обратные косые черты. Например, \s интерпретируется как пробел, а не как текущее значение секунд. В следующем примере показано, как указать приглашение в файле параметров для включения текущего времени в формате чч:мм:сс>:
[mysql] prompt="\\r:\\m:\\s> "
Примечание: можно использовать и другое имя группы для указания настроек клиента. В моих тестах клиент MariaDB правильно обрабатывал настройки из группы [mysql], но вы также можете использовать любое из следующих имён для MariaDB:
[client] [mariadb-client] [client-mariadb] [client-server]
ИМХО, самым универсальным из этих имён является [client], хотя, как я отметил чуть выше, имя группы [mysql] также понимается обоими СУБД.
4. Интерактивное изменение приглашения командной строки MySQL (MariaDB)
Установите подсказку в интерактивном режиме. Вы можете изменить приглашение в интерактивном режиме, используя команду «prompt» (или \R). Например:
prompt (\u@\h) [\d]>\_
Будет выведено:
PROMPT set to '(\u@\h) [\d]>\_' (user@host) [database]>
Вызов команды «prompt» без указания значения вернётся приглашение командной строки к исходному виду:
(user@host) [database]> prompt Returning to default PROMPT of mysql> mysql>
Связанные статьи:
- Какие есть полезные инструменты с интерфейсом командной строки для системных администраторов Linux (50%)
- Уроки по Awk (50%)
- Решение проблемы с ошибкой mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'gtid\_mode'': Table 'performance_schema.session_variables' doesn't exist (1146) (50%)
- Как импортировать и экспортировать базы данных в MySQL или MariaDB (50%)
- Как установить веб-сервер Apache с PHP 7, MariaDB/MySQL и phpMyAdmin (LAMP) на Ubuntu (50%)
- Доступ к аргументам командной строки в C++ (RANDOM - 50%)