Documentation Home
MySQL 8.0 参考手册  / 第 4 章 MySQL 程序  / 4.4 安装相关程序  /  4.4.2 mysql_install_db——初始化MySQL数据目录

4.4.2 mysql_install_db——初始化MySQL数据目录

笔记

mysql_install_db从 MySQL 5.7.6 开始被弃用,因为它的功能已经集成到 mysqld,即 MySQL 服务器。要初始化 MySQL 安装,请使用 或 选项调用mysqld 。有关详细信息,请参阅 第 2.10.1 节“初始化数据目录”。您应该期望mysql_install_db在未来的 MySQL 版本中被删除。 --initialize--initialize-insecure

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位于运行脚本的有效用户的主目录中。 .mysql_secret以模式 600 创建,仅供创建它的操作系统用户访问。

重要的

mysql_install_db为管理账户生成一个随机密码时,需要在 mysql_install_db运行后启动服务器,使用写入.mysql_secret 文件的密码的管理账户连接,并指定一个新的管理密码。在此之前,管理帐户不能用于任何其他用途。要更改密码,可以使用 SET PASSWORD语句(例如,使用mysqlmysqladmin客户端)。重置密码后,删除.mysql_secret文件;否则,如果你跑 mysql_secure_installationroot ,作为确保安全部署的一部分 ,该命令可能会看到该文件并使密码再次过期

调用语法

将位置更改为 MySQL 安装目录并使用此调用语法:

bin/mysql_install_db --datadir=path/to/datadir [other_options]

--datadir选项是强制性的。mysql_install_db创建数据目录,该目录必须不存在:

因为 MySQL 服务器mysqld稍后运行时必须访问数据目录,所以您应该 从用于运行mysqld的同一系统帐户运行mysql_install_db,或者运行它 并指定 选项以指示mysqld在其下运行的用户名。可能需要指定其他选项,例如 如果 mysql_install_db没有使用正确的安装目录位置。例如: root--user--basedir

bin/mysql_install_db --user=mysql \
    --basedir=/opt/mysql/mysql \
    --datadir=/opt/mysql/mysql/data
笔记

mysql_install_db设置 InnoDB 系统表空间后,对某些表空间特性的更改需要设置一个全新的 实例。这包括系统表空间中第一个文件的文件名和撤消日志的数量。如果不想使用默认值,请确保 innodb_data_file_path和 配置参数的设置在运行 mysql_install_db之前在 MySQL配置文件innodb_log_file_size 中就位 。还要确保根据需要指定影响创建和位置的其他参数InnoDB文件,例如 innodb_data_home_dirinnodb_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提供的选项使您能够控制管理帐户的几个方面:

有关详细信息,请参阅这些选项的说明。

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.7 mysql_install_db 选项

选项名称 描述
--admin-auth-plugin 管理账户认证插件
--admin-host 管理帐户名称主机部分
--admin-require-ssl 管理帐户需要 SSL
--admin-用户 管理帐户名用户部分
--basedir 基本目录的路径
--builddir 构建目录的路径(用于源外构建)
--数据目录 数据目录路径
--默认值 读取默认选项文件
--defaults-extra-file 除了通常的选项文件外,还读取命名的选项文件
--defaults-文件 只读命名选项文件
--extra-sql 文件 在引导期间执行的可选 SQL 文件
- 帮助 显示帮助信息并退出
--不安全 不生成管理账户随机密码
--lc-消息 错误消息的语言环境
--lc-消息目录 安装错误信息的目录
--登录文件 读取登录路径信息的文件
--登录路径 从 .mylogin.cnf 读取登录路径选项
--mysqld-文件 mysqld 二进制文件的路径
--no-defaults 不读取选项文件
--随机密码文件 写入管理帐户随机密码的文件
--skip-sys-schema 不要安装或升级 sys 架构
--srcdir 供内部使用
- 用户 执行mysqld的操作系统用户
--冗长 详细模式
- 版本 显示版本信息并退出