Spec-Zone.ru › MySQL 5.7

4.6.6 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 в сочетании с другими файлами параметров. Его приоритет выше, чем у других файлов параметров, но ниже, чем у параметров, указанных явно в командной строке клиента. Сведения о порядке использования файлов параметров см. в разделе 4.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-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, если он существует.

END_OF_DOCUMENT_MARKER

Как показано в предыдущем примере, файл пути входа в систему может содержать несколько путей входа в систему. Таким образом, 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 Команды и параметры, специфичные для команд.

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

Таблица 4.22 Общие параметры 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. Бинарные релизы MySQL, предоставленные компанией Oracle, не скомпилированы с использованием этого параметра.

  • --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-5.7-en/mysql-config-editor.html

Spec-Zone.ru

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