RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Глава 8. Настройка MySQL Shell

MySQL Shell предлагает настроить поведение и окружающую среду выполнения кода через скрипты запуска, которые выполняются, когда приложение запускается впервые. Использование таких скриптов позволяет вам:

  • Добавьте дополнительные пути поиска для модулей Python или JavaScript.

  • Переопределите приглашение по умолчанию в режимах Python и JavaScript.

  • Определите глобальные функции или переменные.

  • Любая другая возможная инициализация через JavaScript или Python.

8.1. Работа со скриптами запуска

Когда MySQL Shell входит в режим JavaScript или Python, он ищет скрипты запуска, которые будут выполнены. Это скрипты на JavaScript или Python, содержащие инструкции, которые будут выполнены, когда соответствующий режим инициализируется.

Скрипты запуска нужно назвать следующим образом:

  • Для JavaScript: mysqlshrc.js

  • Для Python: mysqlshrc.py

MySQL Shell ищет следующие пути к этим файлам (в порядке выполнения).

В Windows:

  1. %PROGRAMDATA%\MySQL\mysqlsh\mysqlshrc.[js|py]

  2. %MYSQLSH_HOME%\shared\mysqlsh\mysqlshrc.[js|py]

  3. <mysqlsh binary path>\mysqlshrc.[js|py]

  4. %APPDATA%\MySQL\mysqlsh\mysqlshrc.[js|py]

В Linux и OS X:

  1. /etc/mysql/mysqlsh/mysqlshrc.[js|py]

  2. $MYSQLSH_HOME/shared/mysqlsh/mysqlshrc.[js|py]

  3. <mysqlsh binary path>/mysqlshrc.[js|py]

  4. $HOME/.mysqlsh/mysqlshrc.[js|py]

Списки выше также определяют порядок поиска путей, поэтому если что-то определяется в двух различных скриптах, скрипт, выполненный позже, имеет приоритет.

Переменная окружения MYSQLSH_HOME, используемая в опции 2, определяет корневую папку стандартной установки MySQL Shell. Если MYSQLSH_HOME не определяется, это автоматически вычисляется на основе местоположения двоичного модуля MySQL Shell, поэтому на многих стандартных установках не требуется определять MYSQLSH_HOME.

Если MYSQLSH_HOME не определяется и двоичный модуль MySQL Shell не находится в стандартном месте, тогда путь, определенный в опции 3 в вышеупомянутых списках, используется. Если используется стандартная установка или MYSQLSH_HOME указывает на обычную структуру папок, тогда путь, определенный в опции 3, не используется.

Пользовательский путь конфигурации в опции 4 может быть отвергнут на всех платформах, определив переменную окружения MYSQLSH_USER_CONFIG_HOME. Значение этой переменной заменяет %AppData%\MySQL\mysqlsh\ в или ~/.mysqlsh/ в Unix.

8.2. Добавление путей поиска модуля

Есть два способа добавить дополнительные пути поиска модуля:

  • Через переменные окружения.

  • Через скрипты запуска.

8.2.1. Переменные окружения

Python использует переменную окружения PYTHONPATH, чтобы позволить расширять пути поиска для модулей. Значение этой переменной это список путей, отделенных:

  • Символ двоеточия в Linux и OS X.

  • Символ точки с запятой в Windows.

Чтобы достигнуть этого в JavaScript, MySQL Shell поддерживает определение дополнительных путей модуля, используя переменную окружения MYSQLSH_JS_MODULE_PATH. Значение этой переменной это список отделенных точкой с запятой путей.

8.2.2. Скрипты запуска

Добавление путей поиска модуля может быть достигнуто для обоих языков через соответствующий скрипт запуска.

Для Python измените файл mysqlshrc.py и добавьте необходимые пути к массиву sys.path.

# Import the sys module
import sys

# Append the additional module paths
sys.path.append('~/custom/python')
sys.path.append('~/other/custom/modules')

Для JavaScript та же самая задача решается, добавляя код в файл mysqlshrc.js, чтобы добавить необходимые пути к предопределенному массиву shell.js_module_paths.

// Append the additional module paths
shell.js.module_paths[shell.js.module_paths.length] = '~/custom/js';
shell.js.module_paths[shell.js.module_paths.length] = '~/other/custom/modules';

8.3. Настройка приглашения

Приглашение MySQL Shell может быть настроено, используя быстрые файлы темы. Для этого установите переменную окружения MYSQLSH_PROMPT_THEME к имени файла темы или скопируйте файл темы в каталог ~/.mysqlsh/prompt.json в Linux и Mac или в %AppData%\MySQL\mysqlsh\prompt.json в Windows.

Пользовательский путь конфигурации может быть отвергнут на всех платформах, определив переменную окружения MYSQLSH_USER_CONFIG_HOME. Ее значение заменяет %AppData%\MySQL\mysqlsh\ в Windows или ~/.mysqlsh/ в Unix.

Формат файла темы описан в файле README.prompt, некоторые типовые быстрые файлы темы включены в комплект. При запуске, если ошибка найдена в файле темы, сообщение об ошибке печатается и используется тема по умолчанию. Некоторые типовые файлы темы требуют специального шрифта (например, SourceCodePro+Powerline+Awesome+Regular.ttf). Если вы устанавливаете переменную окружения MYSQLSH_PROMPT_THEME к пустой строке, MySQL Shell использует минимальное приглашение без цвета.

Цветной дисплей зависит от поддержки, доступной от терминала. Большинство терминалов поддерживает 256 цветов в Linux и Mac. В Windows цветная поддержка требует сторонней программы терминала с поддержкой кодов ANSI/VT100 или Windows 10. По умолчанию MySQL Shell пытается обнаружить тип терминала и окрашивает соответственно. Если автообнаружение не работает или если вы хотите изменить цветовой режим из-за требований доступности или для других целей, можно определить переменную окружения MYSQLSH_TERM_COLOR_MODE, чтобы вынудить MySQL Shell использовать определенный цветовой режим. Возможные значения для этой переменной окружения: rgb, 256, 16 и nocolor.

8.4. Настройка MySQL Shell

Можно настроить MySQL Shell, чтобы соответствовать предпочтениям, например, запустить с определенным языком программирования или обеспечить вывод в конкретном формате. Параметры конфигурации могут быть установлены только для текущей сессии или опции могут быть постоянно установлены, сохранив изменения конфигурационного файла MySQL Shell. Помощь онлайн для всех вариантов обеспечивается. Можно формировать варианты, используя команду MySQL Shell \option, которая доступна во всех режимах MySQL Shell для того, чтобы запросить и изменить параметры конфигурации. Альтернативно в режимах JavaScript и Python, используйте объект shell.options.

Допустимые опции конфигурации

Следующие параметры конфигурации могут быть установлены, используя команду \option или интерфейс shell.options:

optionNameDefaultValue ТипЭффект
autocomplete.nameCachetrue boolean Позволить кэширование имени базы данных для автозавершения.
batchContinueOnErrorfalse boolean (READ ONLY) В пакетном режиме SQL продолжать обработку, если ошибка найдена.
dba.gtidWaitTimeout60 integer больше 0 Перерыв в секундах, чтобы ждать транзакций GTID, которые будут применены, при необходимости операциями AdminAPI (см. Working with InnoDB Cluster).
defaultCompressfalseboolean

Позволить сжатие для получения информации, посланной между клиентом и сервером на каждой глобальной сессии (только классические связи MySQL Protocol).

defaultModeНет string (sql, js или py) Режим, чтобы использовать, когда запускается MySQL Shell (SQL, Javascript или Python).
devapi.dbObjectHandlestrueboolean Позволить обработку сборки имен для объекта DevAPI db.
history.autoSavefalseboolean Сохранить (true) или стереть (false) записи истории команд MySQL Shell, когда вы выходите из MySQL Shell (см. раздел 4.4).
history.maxSize1000integer Максимальное количество записей, чтобы сохранить в истории MySQL Shell.
history.sql.ignorePattern *IDENTIFIED* : *PASSWORD*string Последовательности, которые соответствуют этим образцам, не добавляются к истории MySQL Shell.
interactivetrueboolean (READ ONLY) Включить интерактивный режим.
logLevel5 integer от 1 до 8 Включить журнал приложения и установите уровень протокола (см. раздел 7.1).
pagerНетstring Используйте указанный внешний инструмент пейджера, чтобы показать текст и результаты. Параметры командной строки для инструмента могут быть добавлены (см. раздел 3.5).
passwordsFromStdinfalseboolean Читать пароли из stdin вместо терминала.
resultFormattable string (table, tabbed, vertical, json, json/raw) Выходной формат по умолчанию для печати наборов результатов (см. раздел 4.6).
sandboxDirЗависит от платформы. string Каталог песочницы. В Windows по умолчанию C:\Users\MyUser\MySQL\mysql-sandboxes, в Unix $HOME/mysql-sandboxes.
showColumnTypeInfofalseboolean В режиме SQL показать метаданные столбцов для наборов результатов.
showWarningstrueboolean В режиме SQL автоматически показать предупреждения SQL, если таковые имеются.
useWizardstrueboolean Включить режим мастера.

Строковые последовательности чувствительны к регистру.

Опция outputFormat устарела. Используйте вместо нее resultFormat.

Применение команды \option

Команда \option позволяет вам запросить и изменить параметры конфигурации во всех режимах, позволяя конфигурацию из SQL в дополнение к JavaScript и Python.

Команда используется следующим образом:

  • \option -h, --help [filter] вывести справку для соответствия filter.

  • \option -l, --list [--show-origin] перечислите все опции. --show-origin увеличивает список с информацией о том, как значение было в последний раз изменено, возможные значения:

    • Command line

    • Compiled default

    • Configuration file

    • Environment variable

    • User defined

  • \option option_name напечатайте текущее значение опции.

  • \option [--persist] option_name value или name=value установите значение и если указана --persist, сохраните в файле настроек.

  • \option --unset [--persist] <option_name> перезагрузите значение опции в значение по умолчанию и если указана опция --persist, удалите опцию из конфигурационного файла MySQL Shell.

Значения option_name и filter чувствительны к регистру.

Применение интерфейса shell.options

Объект shell.options доступен в режимах JavaScript и Python, чтобы изменить опции MySQL Shell. Можно использовать определенные методы, чтобы формировать опции или пары ключ/значение следующим образом:

MySQL JS > shell.options['history.autoSave']=1

В дополнение к интерфейсу пары ключ/значение следующие методы доступны:

  • shell.options.set( optionName, value) установить optionName в значение value для этой сессии, изменение не сохранено в конфигурационном файле.

  • shell.options.setPersist( optionName, value) установить optionName в значение value для этой сессии, изменение сохранено в конфигурационном файле. В режиме Python метод shell.options.set_persist.

  • shell.options.unset( optionName) сбросить optionName к значению по умолчанию для этой сессии, изменение не сохранено в конфигурационном файле.

  • shell.options.unsetPersist( optionName) сбросить optionName к значению по умолчанию для этой сессии, изменение сохранено в конфигурационном файле. В режиме Python метод shell.options.unset_persist .

Имена рассматривают как строки, поэтому они должны быть окружены символами ', см. здесь список возможных значений optionName.

Используйте команды, чтобы формировать варианты MySQL Shell следующим образом:

MySQL JS > shell.options.set('history.maxSize', 5000)
MySQL JS > shell.options.setPersist('useWizards', 'true')
MySQL JS > shell.options.setPersist('history.autoSave', 1)

Возвратите опции к их значениям по умолчанию следующим образом:

MySQL JS > shell.options.unset('history.maxSize')
MySQL JS > shell.options.unsetPersist('useWizards')

Файл настроек

Файл настроек MySQL Shell хранит значения опций, чтобы гарантировать, что они сохранены между сессиями. Значения прочитаны при запуске, и когда вы используете функцию сохранения, настройки сохраняются в конфигурационный файл.

Местоположение конфигурационного файла это пользовательский путь конфигурации, и файл называют options.json. Предположение, что пользовательский путь конфигурации по умолчанию не был переопределен, определив переменную окружения MYSQLSH_USER_CONFIG_HOME, тогда путь к конфигурационному файлу:

  • В Windows %APPDATA%\MySQL\mysqlsh.

  • В Unix ~/.mysqlsh, где ~ представляет корневой каталог пользователя.

Конфигурационный файл создается в первый раз, когда вы настраиваете параметр конфигурации. Этот файл внутренне сохраняется MySQL Shell и не должен быть отредактирован вручную. Если найдена неизвестная опция или неправильное значение опции в конфигурационном файле при запуске, MySQL Shell выходит с ошибкой.

Поиск

 

Найди своих коллег!

Вы можете направить письмо администратору этой странички, Алексею Паутову. mailto:alexey.v.pautov@mail.ru