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 数据目录并创建它包含的系统表。
它加载服务器端帮助表。
它安装
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
语句(例如,使用mysql或
mysqladmin客户端)。重置密码后,删除.mysql_secret
文件;否则,如果你跑
mysql_secure_installationroot
,作为确保安全部署的一部分
,该命令可能会看到该文件并使密码再次过期
调用语法
将位置更改为 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稍后运行时必须访问数据目录,所以您应该
从用于运行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_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.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的操作系统用户 |
--冗长 | 详细模式 |
- 版本 | 显示版本信息并退出 |
--help
,-?
显示帮助信息并退出。
--admin-auth-plugin=
plugin_name
用于管理帐户的身份验证插件。默认值为
mysql_native_password
。用于管理帐户名称的主机部分。默认值为
localhost
。--login-path
如果还指定 了此选项,则会忽略此选项 。管理帐户是否需要 SSL。默认是不需要它。启用此选项后,mysql_install_db用于创建帐户的语句包含一个
REQUIRE SSL
子句。因此,管理帐户在连接到服务器时必须使用安全连接。用于管理帐户名称的用户部分。默认值为
root
。--login-path
如果还指定 了此选项,则会忽略此选项。MySQL 安装目录的路径。
与
--srcdir
源代码构建一起使用。将其设置为构建文件所在目录的位置。MySQL 数据目录的路径。如果路径名的最后一个组件不存在,则只创建它;父目录必须已经存在,否则会发生错误。
笔记该
--datadir
选项是必需的,数据目录不得已存在。此选项导致mysql_install_db以从默认位置读取选项文件的方式调用mysqld。如果给出 as
--no-defaults
,并且--defaults-file
or--defaults-extra-file
也没有指定,mysql_install_db 传递--no-defaults
给 mysqld,以防止选项文件被读取。如果由于从选项文件中读取未知选项而导致程序启动失败,这可能会有所帮助。--defaults-extra-file=
file_name
在全局选项文件之后但(在 Unix 上)在用户选项文件之前读取此选项文件。如果该文件不存在或无法访问,则会发生错误。如果
file_name
不是绝对路径名,则将其解释为相对于当前目录。该选项由mysql_install_db传递 给mysqld。
有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
仅使用给定的选项文件。如果该文件不存在或无法访问,则会发生错误。如果
file_name
不是绝对路径名,则将其解释为相对于当前目录。该选项由mysql_install_db传递 给mysqld。
有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
--extra-sql-file=
,file_name
-f
file_name
此选项命名一个文件,其中包含要在标准引导语句之后执行的附加 SQL 语句。文件中接受的语句语法类似于mysql命令行客户端的语法,包括支持多行 C 样式注释和分隔符处理以启用存储程序的定义。
不要为管理帐户生成随机密码。
如果
--insecure
未 给出,则需要在 运行mysql_install_db后启动服务器,使用写入.mysql_secret
文件的密码的管理帐户连接,并指定新的管理密码。在此之前,管理帐户不能用于任何其他用途。要更改密码,可以使用SET PASSWORD
语句(例如,使用mysql或 mysqladmin客户端)。重置密码后,删除.mysql_secret
文件;否则,如果你运行 mysql_secure_installationroot
,作为确保安全部署的一部分 ,该命令可能会看到该文件并使密码再次过期。用于错误消息的语言环境。默认值为
en_US
。该参数被转换为语言名称并与 的值组合--lc-messages-dir
以生成错误消息文件的位置。请参阅 第 10.12 节,“设置错误消息语言”。错误信息所在的目录。该值与 的值一起使用
--lc-messages
以生成错误消息文件的位置。请参阅 第 10.12 节,“设置错误消息语言”。如果指定了选项,则 从中读取登录路径的 文件。默认文件是 .
--login-path=
file_name
.mylogin.cnf
从登录路径文件中指定的登录路径读取选项
.mylogin.cnf
。默认登录路径为client
. (要读取不同的文件,请使用该 选项。)“登录路径”是一个选项组,其中包含指定要连接到哪个 MySQL 服务器以及要验证为哪个帐户的选项。要创建或修改登录路径文件,请使用 mysql_config_editor实用程序。请参阅 第 4.6.6 节,“mysql_config_editor — MySQL 配置实用程序”。--login-file=
name
如果
--login-path
指定了该选项,则用户、主机和密码值将从登录路径中获取并用于创建管理帐户。密码必须在登录路径中定义,否则会发生错误,除非--insecure
还指定了该选项。此外,对于--login-path
,任何--admin-host
和--admin-user
选项都将被忽略。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
要执行的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
有关此选项的行为,请参阅 的说明
--defaults
。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
--random-password-file=
file_name
为管理帐户写入随机生成的密码的文件的路径名。选项值必须是绝对路径名,否则会出错。默认值为
$HOME/.mysql_secret
。mysql_install_db安装
sys
模式。该--skip-sys-schema
选项会抑制此行为。供内部使用。此选项指定目录,mysql_install_db在该目录下查找支持文件,例如错误消息文件和用于填充帮助表的文件。
--user=
,user_name
-u
user_name
用于运行 mysqld的系统(登录)用户名。mysqld创建的文件和目录 归该用户所有。您必须是系统
root
用户才能使用此选项。默认情况下,mysqld使用您当前的登录名运行;它创建的文件和目录归您所有。--verbose
,-v
详细模式。打印有关程序功能的更多信息。您可以使用此选项查看 mysql_install_db调用的mysqld命令 以引导模式启动服务器。
--version
,-V
显示版本信息并退出。