powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / sql запросы из bash
2 сообщений из 2, страница 1 из 1
sql запросы из bash
    #39372852
Виталийv4567
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут у меня возникла ещё проблема.

Пытаюсь выполнить команды mysql из командной строки bash.
В конфиги my.cfg прописал логин, пароль, к какому хосту и базе подключаться.
А так же прописал параметр:

pager=/usr/local/sbin/mysqlsed | most

mysqlsed вот такой:
#!/bin/sed -f

s/|/│/g;
/^+/bp;b
:p x;/^┌/bm;/^├/bl
:f x;s/^+/┌/;s/-/─/g;s/+$/┐/;s/+/┬/g;h;b
:m x;s/^+/├/;s/-/─/g;s/+$/┤/;s/+/┼/g;h;b
:l x;s/^+/└/;s/-/─/g;s/+$/┘/;s/+/┴/g;h;b


он табличку mysql из чёрточек и плюсиков меняет в нормальный вид.

Но когда запускаю из командной строки bash:
mysql -e "команда mysql"
то этот pager как бы не работает, таблица выводиться mysql-увская из чёрточек и плюсиков и если она не вмещается в экран, то она ломается.

most это пейджер, программка типа less или more, только она ещё раскручивает по горизонтали.

Получается что и она не работает.
Если выполнить вот так:
mysql -e "команда mysql" | most
то вывод уже не ломается и можно перемещаться по горизонтали если вывод не вмещается по горизонтали, но при этом исчезает mysql-евская табличка, таблицы вообще нет никакой и вывод немного смещается, неудобно, данные немного перемешиваются по столбцам.
Как вывести всё вместе с таблицей и развернуть по горизонтали?
За помощь буду ещё раз благодарен!
...
Рейтинг: 0 / 0
sql запросы из bash
    #39373045
Виталийv4567
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кое что получилось.

В файле ~/.my.cnf

пишу следующее:

[client]
user=XXXXX
password=XXXX
port=XXXX
host=XXX.XXX.XXX.XXX
default-character-set = utf8

у меня консоль в utf8 поэтому без последней строки:
default-character-set = utf8
кириллица идёт каракулями.

В конфиге сервера mysql комментируем опцию skip-networking
И создаём пользователя (я для безопасности для сети создал пользователя только для просмотра) для конекта через сеть.

"имя пользователя"@"ip с которого будем подключаться"

именно не ip интерфейса сервера на котором весит mysql, а ip компа с которого подключаемся

далее смотрю базу такой командой:

mysql --table -e "select * from таблица;" база | /usr/local/sbin/mysqlsed | less -RSFXin

less с этими опциями прокручивает по горизонтали, правда сразу на несколько колонок и если вывод вмещается в экран, то она выходит в консоль сохраняя вывод.

опция --table сохраняет таблицу.

/usr/local/sbin/mysqlsed у меня расписан выше.

На такую команду можно сделать алиас. Вместо less можно использовать most.

Но в most не нашёл как сделать сохранение экрана при выходе и выход автоматом если вывод вмещается на экран.

А ещё не нашёл как решить следующую проблему. При вводе в ячейку таблицы данных в несколько строк (нажимаем enter для перемещения на следующую строку), при выводе таблица ломается из-за перемещения на следующую строку.

В /usr/local/sbin/mysqlsed вставлял:
s/\n/ /g;

но не помогает.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / sql запросы из bash
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]