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= для отображения имени пути входа, команда nameprint по умолчанию отобразит путь входа 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 Команды и параметры, специфичные для команд.
Таблица 4.22 Общие параметры mysql_config_editor
-
--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_named: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-GnameВывести содержимое указанного пути входа.
-
-
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-GnameПуть входа для удаления или изменения. Имя пути входа по умолчанию —
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-hhost_nameИмя хоста для записи в путь входа.
-
--login-path=,name-GnameПуть входа для создания. Имя пути входа по умолчанию —
client, если этот параметр не задан. -
--password,-pЗапросить пароль для записи в путь входа. После того, как mysql_config_editor отобразит запрос, введите пароль и нажмите Enter. Чтобы предотвратить отображение пароля другим пользователям, mysql_config_editor не выводит его на экран.
Чтобы указать пустой пароль, нажмите Enter в окне запроса пароля. Результирующий путь входа, записанный в файл пути входа, будет включать строку такого вида:
password =
-
--port=,port_num-Pport_numНомер порта TCP/IP для записи в путь входа.
-
--socket=,file_name-Sfile_nameИмя файла сокета Unix для записи в путь входа.
-
--user=,user_name-uuser_nameИмя пользователя для записи в путь входа.
-
--warn,-wВывести предупреждение и запросить подтверждение пользователя, если команда пытается перезаписать существующий путь входа. Этот параметр включён по умолчанию; используйте
--skip-warnдля его отключения.
-
© 2025 Oracle
Licensed under the GPLv2 License.