Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Модуль console

Общие сведения

Модуль console позволяет одному экземпляру Tarantool получать доступ к другому экземпляру Tarantool и позволяет одному экземпляру Tarantool начать прослушивание по порту администрирования.

Указатель

Ниже приведен перечень всех функций модуля console.

Имя

Назначение

console.connect()

Подключение к экземпляру

console.listen()

Прослушивание входящих запросов

console.start()

Запуск консоли

console.ac()

Установка флага автодополнения

console.delimiter()

Установка разделителя

console.get_default_output()

Получение формата вывода по умолчанию

console.set_default_output()

Установка формата вывода по умолчанию

console.eos()

Установка или получение строки конца вывода

console.connect(uri)

Подключение к экземпляру по URI, смена командной строки с 'tarantool>' на '{uri}>' и дальнейшая работа в качестве клиента до окончания сессии пользователя или ввода команды control-D.

Функция console.connect позволяет одному экземпляру Tarantool в интерактивном режиме получать доступ к другому экземпляру Tarantool. Последующие запросы на первый взгляд будут обрабатываться локально, но в действительности запросы отправляются на удаленный экземпляр, а локальный экземпляр выступает в виде клиента. После успешного подключения командная строка сменится, и последующие запросы отправляются и выполняются на удаленном экземпляре. Результат выводится на локальный экземпляр. Чтобы вернуться к работе на локальном экземпляре, введите команду control-D.

Если экземпляр Tarantool по URI запрашивает авторизацию, подключение может выглядеть следующим образом: console.connect('admin:secretpassword@distanthost.com:3301').

Нет ограничений по типу вводимых запросов, кроме ограничений по правам на выполняемые запросы – по умолчанию, вход в систему на удаленном экземпляре выполняется от имени пользователя 'guest'. Можно разрешить работу на удаленном экземпляре, выдав права: box.schema.user.grant('guest','execute','universe').

Параметры:

  • uri (string) — URI удаленного экземпляра

Возвращает

nil

Возможные ошибки:

подключение не будет установлено, если целевой экземпляр Tarantool не был инициирован с помощью box.cfg{listen=...}.

Пример:

tarantool> console = require('console')---...tarantool> console.connect('198.18.44.44:3301')---...198.18.44.44:3301> -- командная строка показывает, что работа идет с удаленным экземпляром

console.listen(uri)

Прослушивание по URI. Основной способ прослушивания на предмет входящих запросов – по строке информации о подключении, или URI, указанному в box.cfg{listen=...}. Другой способ прослушивания – по URI, указанному в console.listen(...). Этот другой способ называется "административным" или просто "по порту администрирования". Такое прослушивание обычно осуществляется по локальному хосту с доменным Unix-сокетом.

Параметры:

  • uri (string) — URI локального экземпляра

"Административный" адрес – это URI для прослушивания. У него нет значения по умолчанию, поэтому следует указать, будет ли подключение производиться по порту администрирования. Параметр выражен URI = Универсальным идентификатором ресурса, например "/tmpdir/unix_domain_socket.sock", или числовым идентификатором TCP-порта. Подключения часто выполняются по telnet. Типичное значение порта: 3313.

Пример:

tarantool> console = require('console')---...tarantool> console.listen('unix/:/tmp/X.sock')---... main/103/console/unix/:/tmp/X I> started- fd: 6  name:    host: unix/    family: AF_UNIX    type: SOCK_STREAM    protocol: 0    port: /tmp/X.sock...

console.start()

Запуск консоли на текущем интерактивном терминале.

Пример:

console.start() специально используется с файлами инициализации. Как правило, при запуске экземпляра Tarantool с помощью команды tarantool {initialization file}, консоль не поддерживается. Эту проблему можно решить путем добавления следующих строк в конце файла инициализации:

local console = require('console')console.start()

console.ac([true|false])

Установка флага автодополнения ввода. Если значение автодополнения = true (правда), и пользователь использует Tarantool в качестве клиента или подключен к Tarantool по console.connect(), то при нажатии клавиши TAB Tarantool будет автоматически дополнять текст по введенной части. По умолчанию, задано значение true.

console.delimiter(marker)

Настройка специального маркера окончания запроса для консоли Tarantool.

По умолчанию, маркер окончания запроса представляет собой символ разрыва строки (перевод строки). Нет необходимости в специальных маркерах, поскольку Tarantool может определить, если многостроковый запрос не завершен (например, если видно, что при объявлении функции еще не задано конечное ключевое слово). Тем не менее, в особых случаях или при вводе многостроковых запросов в более ранних версиях Tarantool, можно изменить маркер окончания запроса. В результате символ разрыва строки не будет означать окончание запроса.

Чтобы вернуться в нормальный режим, введите команду: console.delimiter('')<marker>

Параметры:

  • marker (string) — пользовательский маркер окончания запроса для консоли Tarantool

Пример:

tarantool> console = require('console'); console.delimiter('!')---...tarantool> function f ()         > statement_1 = 'a'         > statement_2 = 'b'         > end!---...tarantool> console.delimiter('')!---...

console.get_default_output()

Возвращает текущий формат вывода по умолчанию. Результат будет fmt="yaml", или fmt="lua", если последним вызовом set_default_output был console.set_default_output('lua').

console.set_default_output('yaml'|'lua')

Устанавливает формат вывода по умолчанию. Возможные значения: 'yaml' (значение по умолчанию) или 'lua'. Формат вывода можно изменить в рамках сессии, выполнив console.eval('\\set output {yaml}|{lua}'); описание форматов вывода см. в разделе Интерактивная консоль.

console.eos([string])

Устанавливает или возвращает строку конца вывода, если формат вывода по умолчанию — 'lua'. Это строка, которая появляется в конце вывода в ответ на любой Lua-запрос. Значение по умолчанию — ; (точка с запятой). Вызов eos() возвращает текущее значение. Например, после require('console').eos('!!') ответы будут заканчиваться на '!!'.