5.5 История кода
Код, который вы вводите в MySQL Shell, сохраняется в истории, к которой можно получить доступ с помощью клавиш со стрелками вверх и вниз. Вы также можете искать в истории с помощью функции инкрементного поиска по истории. Для поиска по истории используйте Ctrl+R для поиска назад или Ctrl+S для поиска вперед по истории. После активации поиска ввод символов ищет любые совпадения с ними в истории и отображает первое совпадение. Используйте Ctrl+S или Ctrl+R для поиска дополнительных совпадений с текущим поисковым запросом. Ввод дополнительных символов дополнительно уточняет поиск. Во время поиска вы можете нажать клавиши со стрелками, чтобы продолжить просмотр истории от текущего результата поиска. Нажмите Enter, чтобы принять отображаемое совпадение. Используйте Ctrl+C, чтобы отменить поиск.
Параметр конфигурации MySQL Shell history.maxSize устанавливает максимальное количество записей для хранения в истории. По умолчанию значение равно 1000. Если количество записей истории превышает заданный максимум, самые старые записи удаляются и отбрасываются. Если максимум установлен на 0, записи истории не сохраняются.
По умолчанию история не сохраняется между сеансами, поэтому при выходе из MySQL Shell история того, что вы ввели в текущем сеансе, теряется. Вы можете сохранить историю между сеансами, включив параметр MySQL Shell history.autoSave. Например, чтобы сделать это изменение постоянным, выполните:
mysqlsh-js> \option --persist history.autoSave=1
Когда параметр history.autoSave включён, история сохраняется в пути конфигурации MySQL Shell, который представляет собой директорию ~/.mysqlsh на Linux и macOS или папку %AppData%\MySQL\mysqlsh на Windows. Этот путь можно переопределить на всех платформах, определив переменную окружения MYSQLSH_USER_CONFIG_HOME. Сохранённая история создаётся автоматически MySQL Shell и доступна только для пользователя-владельца. Если история не может быть прочитана или записана, MySQL Shell выводит сообщение об ошибке и пропускает операцию чтения или записи. История разделяется по активному языку, а файлы называются history.sql, history.js и history.py.
Выполнение команды MySQL Shell \history отображает записи истории в порядке их ввода вместе с их номером в истории, который можно использовать с командой \history delete
. Вы можете вручную удалить отдельные записи истории, указанный числовой диапазон записей истории или хвост истории. Также вы можете использовать entry_number\history clear для удаления всей истории вручную. При выходе из MySQL Shell, если параметр конфигурации history.autoSave был установлен на значение true, оставшиеся записи истории в файле сохраняются, а их нумерация сбрасывается на 1. Если параметр конфигурации shell.options["history.autoSave"] установлен на значение false, которое является значением по умолчанию, файл истории очищается.
В историю добавляется только код, который вы вводите интерактивно в приглашении MySQL Shell. Код, который выполняется косвенно или внутри, например, при выполнении команды \source, в историю не добавляется. При вводе многострочного кода символы новой строки удаляются в записи истории. Если один и тот же код вводится несколько раз, он сохраняется в истории только один раз, уменьшая дублирование.
Вы можете настроить записи, которые добавляются в историю, используя опцию команды --histignore. Кроме того, при использовании MySQL Shell в SQL-режиме вы можете настроить строки, которые не должны добавляться в историю. Этот список игнорирования истории также применяется, когда вы используете команду \sql с запросом для выполнения отдельных SQL-выражений, когда активен другой язык.
По умолчанию строки, соответствующие шаблонам glob IDENTIFIED или PASSWORD, не добавляются в историю. Для настройки дополнительных строк для соответствия используйте опцию команды --histignore или shell.options["history.sql.ignorePattern"]. Можно указать несколько строк, разделяя их двоеточием (:). Сопоставление с историей использует нечувствительное к регистру сопоставление с шаблонами glob. Поддерживаются символы подстановки * (соответствие любым 0 или более символам) и ? (соответствие ровно одному символу). Значения по умолчанию указаны как "*IDENTIFIED*:*PASSWORD*".
Последнее выполненное выражение всегда доступно при нажатии клавиши со стрелкой вверх, даже если на него распространяется список игнорирования истории. Это позволяет вносить исправления без повторного ввода всего ввода. Если фильтрация применяется к последнему выполненному выражению, оно удаляется из истории, как только вводится другое выражение или если вы выходите из MySQL Shell сразу после выполнения выражения.
© 2025 Oracle
Licensed under the GPLv2 License.