4.4.2 mysql_install_db — Инициализация каталога данных MySQL
mysql_install_db устарел начиная с MySQL 5.7.6, так как его функциональность интегрирована в mysqld, сервер MySQL. Для инициализации установки MySQL вызовите mysqld с параметром --initialize или --initialize-insecure. Дополнительную информацию см. в разделе 2.9.1 «Инициализация каталога данных». Ожидайте, что mysql_install_db будет удалён в будущих выпусках MySQL.
mysql_install_db выполняет задачи инициализации, которые должны быть выполнены до того, как сервер MySQL, mysqld, будет готов к использованию:
Он инициализирует каталог данных MySQL и создаёт содержащиеся в нём системные таблицы.
Он инициализирует и связанные структуры данных, необходимые для управления таблицами
InnoDB.Он инициализирует таблицы помощи сервера.
Он устанавливает схему
sys.Он создаёт административный учётную запись. Более старые версии mysql_install_db могут создавать учётные записи анонимных пользователей.
Безопасная по умолчанию установка
Текущие версии mysql_install_db создают установку MySQL с безопасными настройками по умолчанию:
Создаётся единственная административная учётная запись с именем
'root'@'localhost'и случайным паролем, который отмечен как просроченный.Не создаются учётные записи анонимных пользователей.
Не создаётся база данных
test, доступная всем пользователям.Доступны параметры
--admin-для управления характеристиками административной учётной записи.xxxДоступен параметр
--random-password-fileдля управления местом записи случайного пароля.Доступен параметр
--insecureдля отключения генерации случайного пароля.
Если mysql_install_db генерирует случайный административный пароль, он записывает пароль в файл и отображает имя файла. Запись пароля включает отметку времени, указывающую, когда он был записан. По умолчанию файл находится в домашнем каталоге эффективного пользователя, запускающего скрипт. .mysql_secret создаётся с режимом 600, чтобы быть доступным только пользователю операционной системы, для которого он создан.
Когда mysql_install_db генерирует случайный пароль для административной учётной записи, после выполнения mysql_install_db необходимо запустить сервер, подключиться с помощью административной учётной записи с паролем, записанным в файл .mysql_secret, и указать новый административный пароль. До тех пор, пока это не будет сделано, административная учётная запись не может использоваться для других целей. Для смены пароля можно использовать оператор SET PASSWORD (например, с помощью клиента mysql или mysqladmin). После сброса пароля удалите файл .mysql_secret; в противном случае, если вы запустите mysql_secure_installation, эта команда может увидеть файл и снова сбросить пароль root в рамках обеспечения безопасной установки.
Синтаксис вызова
Измените расположение в каталог установки MySQL и используйте следующий синтаксис вызова:
bin/mysql_install_db --datadir=path/to/datadir [other_options]
Параметр --datadir является обязательным. mysql_install_db создаёт каталог данных, который не должен уже существовать:
Если каталог данных уже существует, вы выполняете операцию обновления (а не установки) и должны запустить mysql_upgrade, а не mysql_install_db. См. раздел 4.4.7 «mysql_upgrade — Проверка и обновление таблиц MySQL».
Если каталог данных не существует, но mysql_install_db завершается неудачно, вы должны удалить любой частично созданный каталог данных перед повторным запуском mysql_install_db.
Поскольку сервер MySQL, mysqld, должен получить доступ к каталогу данных при последующем запуске, вы должны либо запустить mysql_install_db от той же учётной записи системы, что используется для запуска mysqld, либо запустить его от root и указать параметр --user для указания имени пользователя, под которым запускается mysqld. Может потребоваться указать другие параметры, такие как --basedir, если mysql_install_db не использует правильное расположение каталога установки. Например:
bin/mysql_install_db --user=mysql \
--basedir=/opt/mysql/mysql \
--datadir=/opt/mysql/mysql/data
После того, как mysql_install_db настраивает InnoDB, изменения некоторых характеристик табличного пространства требуют настройки нового . Это включает имя первого файла в системном табличном пространстве и количество журналов отката. Если вы не хотите использовать значения по умолчанию, убедитесь, что настройки параметров конфигурации innodb_data_file_path и innodb_log_file_size указаны в файле конфигурации MySQL перед запуском mysql_install_db. Также убедитесь, что по необходимости указаны другие параметры, влияющие на создание и расположение файлов InnoDB, такие как innodb_data_home_dir и innodb_log_group_home_dir.
Если эти параметры указаны в вашем файле конфигурации, но этот файл не находится в месте, где MySQL его читает по умолчанию, укажите расположение файла с помощью параметра --defaults-extra-file при запуске mysql_install_db.
Если при установке вы задали пользовательскую переменную среды TMPDIR, и указанный каталог недоступен, mysql_install_db может завершиться неудачей. В этом случае сбросьте значение TMPDIR или установите TMPDIR, чтобы указать системный временный каталог (обычно /tmp).
Создание административного аккаунта
mysql_install_db по умолчанию создаёт административный аккаунт с именем 'root'@'localhost'.
mysql_install_db предоставляет параметры, позволяющие управлять различными аспектами административного аккаунта:
Для изменения части имени пользователя или хоста аккаунта, используйте
--login-path, или--admin-userи--admin-host.--insecureподавляет генерацию случайного пароля.--admin-auth-pluginзадаёт плагин аутентификации.--admin-require-sslзадаёт, требуется ли использование SSL-соединений для аккаунта.
Для получения дополнительной информации см. описания этих параметров.
mysql_install_db присваивает строкам системной таблицы mysql.user ненулевое значение столбца plugin для установки плагина аутентификации. Значение по умолчанию — mysql_native_password. Это значение может быть изменено с помощью параметра --admin-auth-plugin.
Файл my.cnf по умолчанию
mysql_install_db не создаёт файл my.cnf по умолчанию.
Начиная с MySQL 5.7.18, my-default.cnf больше не входит в состав дистрибутива и не устанавливается.
За исключением одного случая, настройки в файле по умолчанию закомментированы и не влияют на работу. Исключением является установка системной переменной sql_mode на значение NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES. Эта настройка приводит к конфигурации сервера, которая вызывает ошибки вместо предупреждений при плохих данных в операциях, изменяющих транзакционные таблицы. См. Раздел 5.1.10, «Режимы SQL сервера».
Параметры команды
mysql_install_db поддерживает следующие параметры, которые можно указать в командной строке или в группе [mysql_install_db] файла параметров. Сведения о файлах параметров, используемых программами MySQL, см. в разделе 4.2.2.2, «Использование файлов параметров».
Таблица 4.8 Параметры mysql_install_db
| Имя параметра | Описание |
|---|---|
| --admin-auth-plugin | Плагин аутентификации административного аккаунта |
| --admin-host | Часть имени хоста административного аккаунта |
| --admin-require-ssl | Требовать SSL для административного аккаунта |
| --admin-user | Часть имени пользователя административного аккаунта |
| --basedir | Путь к базовому каталогу |
| --builddir | Путь к каталогу сборки (для сборки вне исходного кода) |
| --datadir | Путь к каталогу данных |
| --defaults | Читать файлы параметров по умолчанию |
| --defaults-extra-file | Читать указанный файл параметров дополнительно к стандартным файлам |
| --defaults-file | Читать только указанный файл параметров |
| --extra-sql-file | Дополнительный файл SQL для выполнения во время загрузки |
| --help | Показать сообщение справки и выйти |
| --insecure | Не генерировать случайный пароль административного аккаунта |
| --lc-messages | Локаль для сообщений об ошибках |
| --lc-messages-dir | Каталог, где установлены сообщения об ошибках |
| --login-file | Файл для чтения информации о пути входа |
| --login-path | Читать параметры пути входа из .mylogin.cnf |
| --mysqld-file | Путь к бинарному файлу mysqld |
| --no-defaults | Не читать файлы параметров |
| --random-password-file | Файл, в который записать случайный пароль административного аккаунта |
| --skip-sys-schema | Не устанавливать или обновлять схему sys |
| --srcdir | Для внутреннего использования |
| --user | Пользователь операционной системы, под которым нужно выполнить mysqld |
| --verbose | Режим подробной информации |
| --version | Показать информацию о версии и выйти |
END_OF_DOCUMENT_MARKER
-
--help,-?Формат командной строки --helpОтобразить справку и завершить работу.
-
--admin-auth-plugin=plugin_nameФормат командной строки --admin-auth-plugin=plugin_nameТип String Плагин аутентификации для учетной записи администратора. Значение по умолчанию —
mysql_native_password. -
Формат командной строки --admin-host=host_nameТип String Часть хоста, используемая для имени учетной записи администратора. Значение по умолчанию —
localhost. Этот параметр игнорируется, если также указан--login-path. -
Формат командной строки --admin-require-sslТип Boolean Значение по умолчанию FALSEТребовать ли SSL для учетной записи администратора. По умолчанию — нет. При включении этого параметра в инструкцию, используемую mysql_install_db для создания учетной записи, включается пункт
REQUIRE SSL. В результате учетная запись администратора должна использовать защищенные соединения при подключении к серверу. -
Формат командной строки --admin-user=user_nameТип String Часть пользователя, используемая для имени учетной записи администратора. Значение по умолчанию —
root. Этот параметр игнорируется, если также указан--login-path. -
Формат командной строки --basedir=dir_nameТип Имя каталога Путь к каталогу установки MySQL.
-
Формат командной строки --builddir=dir_nameТип Имя каталога Для использования с
--srcdirи сборками вне исходного кода. Установите это значение в расположение каталога, где находятся собранные файлы. -
Формат командной строки --datadir=dir_nameТип Имя каталога Путь к каталогу данных MySQL. Только последний компонент имени пути создается, если он не существует; родительский каталог должен уже существовать, иначе произойдет ошибка.
ПримечаниеПараметр
--datadirобязателен, и каталог данных не должен уже существовать. -
Формат командной строки --defaultsТип Boolean Значение по умолчанию FALSEЭтот параметр заставляет mysql_install_db вызывать mysqld таким образом, чтобы он считывал файлы параметров из мест по умолчанию. Если указан как
--no-defaults, и--defaults-fileили--defaults-extra-fileтакже не указаны, mysql_install_db передает--no-defaultsв mysqld, чтобы предотвратить чтение файлов параметров. Это может помочь, если запуск программы завершается ошибкой из-за чтения неизвестных параметров из файла параметров. -
--defaults-extra-file=file_nameФормат командной строки --defaults-extra-file=file_nameТип Имя файла Считать этот файл параметров после глобального файла параметров, но (в Unix) перед пользовательским файлом параметров. Если файл не существует или недоступен, произойдет ошибка. Если
file_nameне является абсолютным именем пути, он интерпретируется относительно текущего каталога.Этот параметр передается mysql_install_db в mysqld.
Для получения дополнительной информации об этом и других параметрах файла параметров см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».
-
Формат командной строки --defaults-file=file_nameТип Имя файла Использовать только указанный файл параметров. Если файл не существует или недоступен, произойдет ошибка. Если
file_nameне является абсолютным именем пути, он интерпретируется относительно текущего каталога.Этот параметр передается mysql_install_db в mysqld.
Для получения дополнительной информации об этом и других параметрах файла параметров см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».
-
--extra-sql-file=,file_name-ffile_nameФормат командной строки --extra-sql-file=file_nameТип Имя файла Этот параметр указывает файл, содержащий дополнительные операторы SQL, которые должны выполняться после стандартных операторов загрузки. Допустимый синтаксис операторов в файле аналогичен синтаксису клиента командной строки mysql, включая поддержку многострочных комментариев в стиле C и обработку разделителей для обеспечения определения хранимых программ.
-
Формат командной строки --insecureТип Boolean Значение по умолчанию FALSEНе генерировать случайный пароль для административной учетной записи.
Если параметр
--insecureне указан, после выполнения команды mysql_install_db необходимо запустить сервер, подключиться, используя административную учетную запись с паролем, записанным в файл.mysql_secret, и указать новый административный пароль. Пока это не будет сделано, административная учетная запись не может использоваться для чего-либо еще. Чтобы изменить пароль, можно использовать инструкциюSET PASSWORD(например, с помощью клиента mysql или mysqladmin). После сброса пароля удалите файл.mysql_secret; в противном случае, если вы запустите mysql_secure_installation, эта команда может увидеть файл и снова истечет срок действия пароляrootв рамках обеспечения безопасного развертывания. -
Формат командной строки --lc-messages=nameТип String Значение по умолчанию en_USЛокаль, используемая для сообщений об ошибках. Значение по умолчанию —
en_US. Аргумент преобразуется в имя языка и объединяется со значением параметра--lc-messages-dirдля определения местоположения файла сообщений об ошибках. См. Раздел 10.12, «Установка языка сообщений об ошибках». -
Формат командной строки --lc-messages-dir=dir_nameТип Имя каталога Каталог, в котором расположены сообщения об ошибках. Значение используется вместе со значением параметра
--lc-messagesдля определения местоположения файла сообщений об ошибках. См. Раздел 10.12, «Установка языка сообщений об ошибках». -
Формат командной строки --login-file=file_nameТип Имя файла Файл, из которого следует читать путь к логину, если указан параметр
--login-path=. Файл по умолчанию —file_name.mylogin.cnf. -
Формат командной строки --login-path=nameТип Строка Чтение параметров из указанного пути к логину в файле пути к логину
.mylogin.cnf. Путь к логину по умолчанию —client. (Чтобы прочитать другой файл, используйте параметр--login-file=.) “Путь к логину” — это группа параметров, содержащих параметры, которые указывают, к какому серверу MySQL подключаться и под какой учетной записью выполнять аутентификацию. Чтобы создать или изменить файл пути к логину, используйте утилиту mysql_config_editor. См. Раздел 4.6.6, «mysql_config_editor — Утилита конфигурации MySQL».nameЕсли указан параметр
--login-path, значения пользователя, хоста и пароля берутся из пути к логину и используются для создания административной учетной записи. Пароль должен быть определен в пути к логину, иначе произойдет ошибка, если только не указан также параметр--insecure. Кроме того, при использовании параметра--login-pathпараметры--admin-hostи--admin-userигнорируются.Для получения дополнительной информации об этом и других параметрах файла параметров см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».
-
Формат командной строки --mysqld-file=file_nameТип Имя файла Имя пути к исполняемому файлу mysqld. Значение параметра должно быть абсолютным именем пути, иначе произойдет ошибка.
Если этот параметр не указан, mysql_install_db ищет mysqld в следующих местах:
В каталоге
binв значении параметра--basedir, если этот параметр был указан.В каталоге
binв значении параметра--srcdir, если этот параметр был указан.В каталоге
binв значении параметра--builddir, если этот параметр был указан.В локальном каталоге и в каталогах
binиsbinв локальном каталоге.В
/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin,/opt/local/bin,/opt/local/sbin.
-
Формат командной строки --no-defaultsДля поведения этого параметра см. описание параметра
--defaults.Для получения дополнительной информации об этом и других параметрах файла параметров см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».
-
--random-password-file=file_nameФормат командной строки --random-password-file=file_nameТип Имя файла Имя пути к файлу, в который будет записан случайно сгенерированный пароль для административной учетной записи. Значение параметра должно быть абсолютным именем пути, иначе произойдет ошибка. Значение по умолчанию —
$HOME/.mysql_secret. -
Формат командной строки --skip-sys-schemaТип Boolean Значение по умолчанию FALSEmysql_install_db устанавливает схему
sys. Параметр--skip-sys-schemaподавляет это поведение.
-
Формат командной строки --srcdir=dir_nameТип Имя каталога Для внутреннего использования. Этот параметр указывает каталог, в котором mysql_install_db ищет файлы поддержки, такие как файл сообщений об ошибках и файл для заполнения таблиц справки.
-
--user=,user_name-uuser_nameФормат командной строки --user=user_nameИмя системного (логина) пользователя, используемого для запуска mysqld. Файлы и каталоги, созданные mysqld, принадлежат этому пользователю. Вы должны быть системным
rootпользователем, чтобы использовать этот параметр. По умолчанию mysqld запускается под вашим текущим именем пользователя; файлы и каталоги, которые он создает, принадлежат вам. -
--verbose,-vФормат командной строки --verboseРежим подробного вывода. Выводить больше информации о действиях программы. Вы можете использовать этот параметр, чтобы увидеть команду mysqld, которую mysql_install_db использует для запуска сервера в режиме загрузки.
-
--version,-VФормат командной строки --versionОтобразить информацию о версии и выйти.
© 2025 Oracle
Licensed under the GPLv2 License.