Spec-Zone.ru › MySQL 9.2

6.6.7 mysql_config_editor — Утилита конфигурации MySQL

Утилита mysql_config_editor позволяет хранить учетные данные авторизации в зашифрованном файле пути входа, названном .mylogin.cnf. Местоположение файла — каталог %APPDATA%\MySQL в Windows и домашний каталог текущего пользователя в системах, отличных от Windows. Позже файл может быть прочитан программами-клиентами MySQL для получения учетных данных авторизации для подключения к серверу MySQL.

Незашифрованный формат файла пути входа .mylogin.cnf состоит из групп параметров, аналогично другим файлам параметров. Каждая группа параметров в .mylogin.cnf называется «“путь входа,”» и разрешает только определённые параметры: host, user, password, port и socket. Представьте себе группу параметров пути входа как набор параметров, которые указывают, к какому серверу MySQL подключаться и под какой учётной записью авторизоваться. Вот пример незашифрованного файла:

[client]
user = mydefaultname
password = mydefaultpass
host = 127.0.0.1
[mypath]
user = myothername
password = myotherpass
host = localhost

При вызове программы-клиента для подключения к серверу клиент использует .mylogin.cnf совместно с другими файлами параметров. Его приоритет выше, чем у других файлов параметров, но ниже, чем у параметров, явно указанных в командной строке клиента. Сведения о порядке использования файлов параметров см. в Разделе 6.2.2.2, «Использование файлов параметров».

Для указания альтернативного имени файла пути входа установите переменную среды MYSQL_TEST_LOGIN_FILE. Эта переменная распознаётся утилитой mysql_config_editor, стандартными клиентами MySQL (mysql, mysqladmin и т. д.) и утилитой тестирования mysql-test-run.pl.

Программы используют группы в файле пути входа следующим образом:

  • Утилита mysql_config_editor по умолчанию работает с client путём входа, если вы не указали параметр --login-path=name, чтобы явно указать, какой путь входа использовать.

  • Без параметра --login-path программы-клиенты считывают те же группы параметров из файла пути входа, что и из других файлов параметров. Рассмотрим следующую команду:

    mysql
    

    По умолчанию клиент mysql читает группы [client] и [mysql] из других файлов параметров, поэтому он также читает их из файла пути входа.

  • С параметром --login-path программы-клиенты дополнительно читают указанный путь входа из файла пути входа. Группы параметров, считанные из других файлов параметров, остаются теми же. Рассмотрим следующую команду:

    mysql --login-path=mypath
    

    Клиент mysql считывает [client] и [mysql] из других файлов параметров, а [client], [mysql] и [mypath] из файла пути входа.

  • Программы-клиенты считывают файл пути входа даже при использовании параметра --no-defaults, если не установлен параметр --no-login-paths. Это позволяет задавать пароли более безопасным способом, чем в командной строке, даже если присутствует параметр --no-defaults.

Утилита mysql_config_editor шифрует файл .mylogin.cnf, чтобы его нельзя было прочитать в виде открытого текста, и его содержимое, когда оно расшифровывается программами-клиентами, используется только в памяти. Таким образом, пароли могут храниться в файле в нетекстовом формате и использоваться позже без необходимости отображения их в командной строке или переменной среды. Утилита mysql_config_editor предоставляет команду print для отображения содержимого файла пути входа, но даже в этом случае значения паролей маскируются, чтобы они не отображались другим пользователям.

Шифрование, используемое утилитой mysql_config_editor, предотвращает отображение паролей в файле .mylogin.cnf в виде открытого текста и обеспечивает определённую безопасность, предотвращая случайное раскрытие паролей. Например, если вы отобразите обычный незашифрованный файл параметров my.cnf на экране, любые содержащиеся в нём пароли будут видны всем. С утилитой .mylogin.cnf это не так, но используемое шифрование вряд ли удержит решительного злоумышленника, и не следует считать его абсолютно надёжным. Пользователь, получивший права администратора системы на вашем компьютере, чтобы получить доступ к вашим файлам, мог бы расшифровать файл .mylogin.cnf приложить некоторые усилия.

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

Вызовите mysql_config_editor так:

mysql_config_editor [program_options] command [command_options]

Если файл пути входа не существует, утилита mysql_config_editor создаёт его.

Аргументы команды задаются следующим образом:

  • program_options состоит из общих параметров mysql_config_editor.

  • command указывает действие, которое нужно выполнить с файлом пути входа .mylogin.cnf. Например, set записывает путь входа в файл, remove удаляет путь входа, а print отображает содержимое пути входа.

  • command_options указывает любые дополнительные параметры, специфичные для команды, такие как имя пути входа и значения, которые нужно использовать в пути входа.

Позиция имени команды в наборе аргументов программы имеет значение. Например, эти командные строки имеют одинаковые аргументы, но приводят к разным результатам:

mysql_config_editor --help set
mysql_config_editor set --help

В первой командной строке отображается сообщение справки по утилите mysql_config_editor и аргумент set игнорируется. Во второй командной строке отображается сообщение справки, специфичное для команды set.

Предположим, что вы хотите создать путь входа client, который определяет параметры вашего подключения по умолчанию, и дополнительный путь входа под названием remote для подключения к серверу MySQL на хосте remote.example.com. Вы хотите войти в систему следующим образом:

  • По умолчанию, на локальный сервер с именем пользователя и паролем localuser и localpass

  • На удалённый сервер с именем пользователя и паролем remoteuser и remotepass

Для настройки путей входа в файле .mylogin.cnf используйте следующие команды set. Введите каждую команду в отдельной строке и введите соответствующие пароли, когда вас попросят:

$> mysql_config_editor set --login-path=client
         --host=localhost --user=localuser --password
Enter password: enter password "localpass" here
$> mysql_config_editor set --login-path=remote
         --host=remote.example.com --user=remoteuser --password
Enter password: enter password "remotepass" here

Утилита mysql_config_editor по умолчанию использует путь входа client, поэтому параметр --login-path=client можно опустить из первой команды, не изменяя её действие.

Чтобы увидеть, что утилита mysql_config_editor записывает в файл .mylogin.cnf, используйте команду print:

$> mysql_config_editor print --all
[client]
user = localuser
password = *****
host = localhost
[remote]
user = remoteuser
password = *****
host = remote.example.com

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

Если вы не укажете --all для отображения всех путей входа или --login-path=name для отображения заданного пути входа, команда print по умолчанию отображает путь входа client, если таковой существует.

Как показано в предыдущем примере, файл пути входа в систему может содержать несколько путей входа в систему. Таким образом, mysql_config_editor упрощает настройку нескольких «“персональностей“» для подключения к различным серверам MySQL или для подключения к данному серверу с использованием различных учетных записей. Любую из них можно выбрать по имени позже с помощью параметра --login-path при вызове программы-клиента. Например, для подключения к удаленному серверу используйте следующую команду:

mysql --login-path=remote

Здесь, mysql считывает группы параметров [client] и [mysql] из других файлов параметров, а группы параметров [client], [mysql] и [remote] — из файла пути входа в систему.

Для подключения к локальному серверу используйте следующую команду:

mysql --login-path=client

Поскольку mysql по умолчанию считывает пути входа в систему client и mysql, параметр --login-path в данном случае ничего не добавляет. Эта команда эквивалентна следующей:

mysql

Параметры, считанные из файла пути входа в систему, имеют приоритет над параметрами, считанными из других файлов параметров. Параметры, считанные из групп пути входа в систему, которые появляются позже в файле пути входа в систему, имеют приоритет над параметрами, считанными из групп, которые появляются раньше в файле.

mysql_config_editor добавляет пути входа в систему в файл пути входа в систему в порядке их создания, поэтому вы должны создавать более общие пути входа в систему раньше, а более специфические — позже. Если вам нужно переместить путь входа в систему в файле, вы можете удалить его, а затем воссоздать, чтобы добавить его в конец. Например, путь входа в систему client является более общим, поскольку его считывают все программы-клиенты, в то время как путь входа в систему mysqldump считывается только mysqldump. Параметры, указанные позже, переопределяют параметры, указанные ранее, поэтому расположение путей входа в систему в порядке client, mysqldump позволяет параметрам, специфичным для mysqldump, переопределять параметры client.

При использовании команды set с mysql_config_editor для создания пути входа в систему вам не нужно указывать все возможные значения параметров (имя хоста, имя пользователя, пароль, порт, сокет). В путь записываются только те значения, которые заданы. Любые отсутствующие значения, которые потребуются позже, можно указать при вызове пути клиента для подключения к серверу MySQL, либо в других файлах параметров, либо в командной строке. Любые параметры, указанные в командной строке, переопределяют параметры, указанные в файле пути входа в систему или других файлах параметров. Например, если учетные данные в пути входа в систему remote также применяются для хоста remote2.example.com, подключитесь к серверу на этом хосте следующим образом:

mysql --login-path=remote --host=remote2.example.com

Общие параметры mysql_config_editor

mysql_config_editor поддерживает следующие общие параметры, которые можно использовать перед любым именем команды в командной строке. Описание параметров конкретной команды см. в разделе mysql_config_editor Команды и параметры, специфичные для команды.

Таблица 6.18 Общие параметры mysql_config_editor

Таблица 6.18 Общие параметры mysql_config_editor
Имя параметра Описание
--debug Запись отладочного журнала
--help Вывод сообщения справки и завершение
--verbose Подробный режим
--version Вывод информации о версии и завершение

  • --help, -?

    Формат командной строки --help

    Вывод общего сообщения справки и завершение.

    Чтобы увидеть сообщение справки по конкретной команде, вызовите mysql_config_editor следующим образом, где command — это команда, отличная от help:

    mysql_config_editor command --help
    
  • --debug[=debug_options], -# debug_options

    Формат командной строки --debug[=debug_options]
    Тип Строка
    Значение по умолчанию d:t:o

    Запись отладочного журнала. Типичная строка debug_options — это d:t:o,file_name. По умолчанию — d:t:o,/tmp/mysql_config_editor.trace.

    Этот параметр доступен только в том случае, если MySQL был скомпилирован с использованием WITH_DEBUG. Выпускаемые компанией Oracle двоичные файлы MySQL не скомпилированы с использованием этого параметра.

  • --verbose, -v

    Формат командной строки --verbose

    Режим подробного вывода. Вывод дополнительной информации о действиях программы. Этот параметр может быть полезен для диагностики проблем, если операция не выполняется так, как ожидалось.

  • --version, -V

    Формат командной строки --version

    Вывод информации о версии и завершение.

Команды mysql_config_editor и параметры, специфичные для команды

В этом разделе описаны разрешенные команды mysql_config_editor и для каждой из них — параметры, специфичные для команды, разрешенные после имени команды в командной строке.

Кроме того, mysql_config_editor поддерживает общие параметры, которые можно использовать перед любой командой. Описание этих параметров см. в разделе Общие параметры mysql_config_editor.

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

  • help

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

    Чтобы отобразить сообщение справки для определённой команды, вызовите mysql_config_editor следующим образом, где command — это команда, отличная от help:

    mysql_config_editor command --help
    
  • print [options]

    Вывести содержимое файла пути входа в нешифрованном виде, за исключением паролей, которые отображаются как *****.

    Имя файла пути входа по умолчанию — client, если путь входа не указан. Если заданы оба --all и --login-path, приоритет имеет --all.

    Команда print допускает следующие параметры после имени команды:

    • --help, -?

      Отобразить сообщение справки для команды print и выйти.

      Чтобы отобразить общее сообщение справки, используйте mysql_config_editor --help.

    • --all

      Вывести содержимое всех путей входа из файла пути входа.

    • --login-path=name, -G name

      Вывести содержимое указанного пути входа.

  • remove [options]

    Удалить путь входа из файла пути входа или изменить путь входа, удалив из него параметры.

    Данная команда удаляет из пути входа только те параметры, которые указаны с помощью параметров --host, --password, --port, --socket и --user. Если ни один из этих параметров не задан, remove удаляет весь путь входа. Например, данная команда удаляет только параметр user из пути входа mypath, а не весь путь входа mypath:

    mysql_config_editor remove --login-path=mypath --user
    

    Данная команда удаляет весь путь входа mypath:

    mysql_config_editor remove --login-path=mypath
    

    Команда remove допускает следующие параметры после имени команды:

    • --help, -?

      Отобразить сообщение справки для команды remove и выйти.

      Чтобы отобразить общее сообщение справки, используйте mysql_config_editor --help.

    • --host, -h

      Удалить имя хоста из пути входа.

    • --login-path=name, -G name

      Путь входа для удаления или изменения. Имя пути входа по умолчанию — client, если этот параметр не задан.

    • --password, -p

      Удалить пароль из пути входа.

    • --port, -P

      Удалить номер порта TCP/IP из пути входа.

    • --socket, -S

      Удалить имя файла сокета Unix из пути входа.

    • --user, -u

      Удалить имя пользователя из пути входа.

    • --warn, -w

      Вывести предупреждение и запросить подтверждение пользователя, если команда пытается удалить путь входа по умолчанию (client) и --login-path=client не был указан. Этот параметр включён по умолчанию; используйте --skip-warn для его отключения.

  • reset [options]

    Очистить содержимое файла пути входа.

    Команда reset допускает следующие параметры после имени команды:

    • --help, -?

      Отобразить сообщение справки для команды reset и выйти.

      Чтобы отобразить общее сообщение справки, используйте mysql_config_editor --help.

  • set [options]

    Записать путь входа в файл пути входа.

    Данная команда записывает в путь входа только те параметры, которые указаны с помощью параметров --host, --password, --port, --socket и --user. Если ни один из этих параметров не задан, mysql_config_editor записывает путь входа как пустую группу.

    Команда set допускает следующие параметры после имени команды:

    • --help, -?

      Отобразить сообщение справки для команды set и выйти.

      Чтобы отобразить общее сообщение справки, используйте mysql_config_editor --help.

    • --host=host_name, -h host_name

      Имя хоста для записи в путь входа.

    • --login-path=name, -G name

      Путь входа для создания. Имя пути входа по умолчанию — client, если этот параметр не задан.

    • --password, -p

      Запросить пароль для записи в путь входа. После того, как mysql_config_editor отобразит запрос, введите пароль и нажмите Enter. Чтобы предотвратить отображение пароля другим пользователям, mysql_config_editor не отображает его.

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

      password =
      
    • --port=port_num, -P port_num

      Номер порта TCP/IP для записи в путь входа.

    • --socket=file_name, -S file_name

      Имя файла сокета Unix для записи в путь входа.

    • --user=user_name, -u user_name

      Имя пользователя для записи в путь входа.

    • --warn, -w

      Вывести предупреждение и запросить подтверждение пользователя, если команда пытается перезаписать существующий путь входа. Этот параметр включен по умолчанию; используйте --skip-warn для его отключения.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-config-editor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API