Spec-Zone.ru › MySQL 5.7

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.

END_OF_DOCUMENT_MARKER
Примечание

Если при установке вы задали пользовательскую переменную среды 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

Таблица 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

    Формат командной строки --admin-host=host_name
    Тип String

    Часть хоста, используемая для имени учетной записи администратора. Значение по умолчанию — localhost. Этот параметр игнорируется, если также указан --login-path.

  • --admin-require-ssl

    Формат командной строки --admin-require-ssl
    Тип Boolean
    Значение по умолчанию FALSE

    Требовать ли SSL для учетной записи администратора. По умолчанию — нет. При включении этого параметра в инструкцию, используемую mysql_install_db для создания учетной записи, включается пункт REQUIRE SSL. В результате учетная запись администратора должна использовать защищенные соединения при подключении к серверу.

  • --admin-user=user_name

    Формат командной строки --admin-user=user_name
    Тип String

    Часть пользователя, используемая для имени учетной записи администратора. Значение по умолчанию — root. Этот параметр игнорируется, если также указан --login-path.

  • --basedir=dir_name

    Формат командной строки --basedir=dir_name
    Тип Имя каталога

    Путь к каталогу установки MySQL.

  • --builddir=dir_name

    Формат командной строки --builddir=dir_name
    Тип Имя каталога

    Для использования с --srcdir и сборками вне исходного кода. Установите это значение в расположение каталога, где находятся собранные файлы.

  • --datadir=dir_name

    Формат командной строки --datadir=dir_name
    Тип Имя каталога

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

    Примечание

    Параметр --datadir обязателен, и каталог данных не должен уже существовать.

  • --defaults

    Формат командной строки --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

    Формат командной строки --defaults-file=file_name
    Тип Имя файла

    Использовать только указанный файл параметров. Если файл не существует или недоступен, произойдет ошибка. Если file_name не является абсолютным именем пути, он интерпретируется относительно текущего каталога.

    Этот параметр передается mysql_install_db в mysqld.

    Для получения дополнительной информации об этом и других параметрах файла параметров см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».

  • --extra-sql-file=file_name, -f file_name

    Формат командной строки --extra-sql-file=file_name
    Тип Имя файла

    Этот параметр указывает файл, содержащий дополнительные операторы SQL, которые должны выполняться после стандартных операторов загрузки. Допустимый синтаксис операторов в файле аналогичен синтаксису клиента командной строки mysql, включая поддержку многострочных комментариев в стиле C и обработку разделителей для обеспечения определения хранимых программ.

  • --insecure

    Формат командной строки --insecure
    Тип Boolean
    Значение по умолчанию FALSE

    Не генерировать случайный пароль для административной учетной записи.

    Если параметр --insecure не указан, после выполнения команды mysql_install_db необходимо запустить сервер, подключиться, используя административную учетную запись с паролем, записанным в файл .mysql_secret, и указать новый административный пароль. Пока это не будет сделано, административная учетная запись не может использоваться для чего-либо еще. Чтобы изменить пароль, можно использовать инструкцию SET PASSWORD (например, с помощью клиента mysql или mysqladmin). После сброса пароля удалите файл .mysql_secret; в противном случае, если вы запустите mysql_secure_installation, эта команда может увидеть файл и снова истечет срок действия пароля root в рамках обеспечения безопасного развертывания.

  • --lc-messages=name

    Формат командной строки --lc-messages=name
    Тип String
    Значение по умолчанию en_US

    Локаль, используемая для сообщений об ошибках. Значение по умолчанию — en_US. Аргумент преобразуется в имя языка и объединяется со значением параметра --lc-messages-dir для определения местоположения файла сообщений об ошибках. См. Раздел 10.12, «Установка языка сообщений об ошибках».

  • --lc-messages-dir=dir_name

    Формат командной строки --lc-messages-dir=dir_name
    Тип Имя каталога

    Каталог, в котором расположены сообщения об ошибках. Значение используется вместе со значением параметра --lc-messages для определения местоположения файла сообщений об ошибках. См. Раздел 10.12, «Установка языка сообщений об ошибках».

  • --login-file=file_name

    Формат командной строки --login-file=file_name
    Тип Имя файла

    Файл, из которого следует читать путь к логину, если указан параметр --login-path=file_name. Файл по умолчанию — .mylogin.cnf.

  • --login-path=name

    Формат командной строки --login-path=name
    Тип Строка

    Чтение параметров из указанного пути к логину в файле пути к логину .mylogin.cnf. Путь к логину по умолчанию — client. (Чтобы прочитать другой файл, используйте параметр --login-file=name.) “Путь к логину” — это группа параметров, содержащих параметры, которые указывают, к какому серверу MySQL подключаться и под какой учетной записью выполнять аутентификацию. Чтобы создать или изменить файл пути к логину, используйте утилиту mysql_config_editor. См. Раздел 4.6.6, «mysql_config_editor — Утилита конфигурации MySQL».

    Если указан параметр --login-path, значения пользователя, хоста и пароля берутся из пути к логину и используются для создания административной учетной записи. Пароль должен быть определен в пути к логину, иначе произойдет ошибка, если только не указан также параметр --insecure. Кроме того, при использовании параметра --login-path параметры --admin-host и --admin-user игнорируются.

    Для получения дополнительной информации об этом и других параметрах файла параметров см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».

  • --mysqld-file=file_name

    Формат командной строки --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

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

    Для поведения этого параметра см. описание параметра --defaults.

    Для получения дополнительной информации об этом и других параметрах файла параметров см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».

  • --random-password-file=file_name

    Формат командной строки --random-password-file=file_name
    Тип Имя файла

    Имя пути к файлу, в который будет записан случайно сгенерированный пароль для административной учетной записи. Значение параметра должно быть абсолютным именем пути, иначе произойдет ошибка. Значение по умолчанию — $HOME/.mysql_secret.

  • --skip-sys-schema

    Формат командной строки --skip-sys-schema
    Тип Boolean
    Значение по умолчанию FALSE

    mysql_install_db устанавливает схему sys. Параметр --skip-sys-schema подавляет это поведение.

  • --srcdir=dir_name

    Формат командной строки --srcdir=dir_name
    Тип Имя каталога

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

  • --user=user_name, -u user_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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/mysql-install-db.html

Spec-Zone.ru

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