Инструменты пользователя

Инструменты сайта


Боковая панель

Software

Hardware

Network

IoT

software:linux:mysql_client_tuning

Тюнинг консольного клиента MySQL

Мне довольно часто, даже постоянно приходится обращаться к разным базам данных MySQL. Испробовав немало разных GUI клиентов я понял, что они все меня не удоблетворяют. То проблемы с кодировкой, то отсутствует автодополнение кода, то не работает история запросов. В общем пришел я к использованию консольного клиента mysql. И вроде все хорошо, но была пара проблем. Во-первых заходя в очередную закладку с открытым соединением mysql я тупо смотрел в строку приглашения и старался понять на каком я сервере нахожусь и к какой базе данных подключен. Во-вторых при выводе большого количества полей или при выводе поля с длиной превышающей ширину терминала получалась каша из черточек, букв и палочек :). На днях я покопался в документации и с кое-чем разобрался. Итак приглашение. Можно интерактивно переключить с помощью команды prompt . Например так:

mysql> 
mysql> prompt (\u@\h) [\d]>
PROMPT set to '(\u@\h) [\d]>'
(www@192.168.1.33) [poll]>
(www@192.168.1.33) [poll]>
(www@192.168.1.33) [poll]>

где \u - пользователь, \h - хост и \d - база данных

Теперь насчет вывода. Переменная pager определяет через какую программу будет представлен вывод результатов запросов. После некоторых экспериментов с more и less, я пришел к следующему варианту:

(www@192.168.1.33) [poll]>pager less -n -i -S
PAGER set to 'less -n -i -S'

В результате запрос увидим в привычном интерфейсе less со всеми вкусностями типа поиска и т.д.:

Конечно можно эти команды вводить в интерактивном режиме, можно их прописать как системные переменные, но все же удобнее один раз прописать их в файл ~/my.cnf например так:

[client]
default-character-set= utf8
pager      = less -n -i -S
prompt    =(\u@\h) [\d]>.

Вернуть вывод в stdout в сессии клиента можно так:

(oleg@192.168.1.3) [dbtest]>\n
PAGER set to stdout

Надеюсь вам понравится подобный тюнинг и вы возьмете на вооружение мои советы.

software/linux/mysql_client_tuning.txt · Последнее изменение: 2021/07/23 05:04 — oleg