mysql_install_db初始化 MySQL 数据目录并创建它包含的系统表(如果它们不存在)。它还初始化管理表所需的
系统表空间
和相关数据结构
InnoDB
。从 MySQL 5.6.8 开始,
mysql_install_db是一个 Perl 脚本,可以在任何安装了 Perl 的系统上使用。在 5.6.8 之前,它是一个 shell 脚本,只能在 Unix 平台上使用。
从 MySQL 5.6.8 开始,在 Unix 平台上,
mysql_install_db创建一个my.cnf
在基本安装目录中命名的默认选项文件。该文件是根据分发包中包含的模板创建的,名为my-default.cnf
. 您可以在基本安装目录中或下找到该模板。当开始使用mysqld_safe时,服务器my.cnf
默认使用文件。如果
my.cnf
已经存在,
mysql_install_db假定它正在使用并写入一个名为的新文件my-new.cnf
。
除了一个例外,默认选项文件中的设置被注释掉并且没有效果。例外情况是文件将sql_mode
系统变量设置为
NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
. 此设置生成的服务器配置会导致错误,而不是在修改事务表的操作中对错误数据发出警告。请参阅第 5.1.10 节,“服务器 SQL 模式”。
要调用mysql_install_db,请使用以下语法:
mysql_install_db [options]
因为 MySQL 服务器mysqld稍后运行时必须访问数据目录,所以您应该
从用于运行mysqld的同一系统帐户运行mysql_install_db,或者运行它
并指定
选项以指示mysqld运行的用户名作为。可能需要指定其他选项,例如
or
如果
mysql_install_db没有使用正确的安装目录或数据目录位置。例如:
root
--user
--basedir
--datadir
scripts/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支持以下选项,可以在命令行或
[mysql_install_db]
选项文件组中指定。(也可以在组中指定mysqld通用的[mysqld]
选项。)其他选项传递给mysqld。有关 MySQL 程序使用的选项文件的信息,请参阅
第 4.2.2.2 节,“使用选项文件”。
表 4.7 mysql_install_db 选项
选项名称 | 描述 | 介绍 | 弃用 |
---|---|---|---|
--basedir | 基本目录的路径 | ||
--builddir | 构建目录的路径(用于源外构建) | ||
--交叉引导 | 供内部使用 | ||
--数据目录 | 数据目录路径 | ||
--defaults-extra-file | 除了通常的选项文件外,还读取命名的选项文件 | ||
--defaults-文件 | 只读命名选项文件 | ||
- 力量 | 即使 DNS 不起作用也运行 | ||
- 帮助 | 显示帮助信息并退出 | ||
--keep-my-cnf | 保留现有的 my.cnf 文件,不要创建新文件 | 5.6.20 | 5.6.20 |
--ldata | --datadir 的同义词 | ||
--no-defaults | 不读取选项文件 | ||
--随机密码 | 生成管理账户随机密码 | ||
--rpm | 供内部使用 | ||
--skip-name-resolve | 在授权表中使用 IP 地址而不是主机名 | ||
--srcdir | 供内部使用 | ||
- 用户 | 执行mysqld的操作系统用户 | ||
--冗长 | 详细模式 | ||
- 视窗 | 供内部使用 |
显示帮助信息并退出。
MySQL 安装目录的路径。
与
--srcdir
源代码构建一起使用。将其设置为构建文件所在目录的位置。供内部使用。此选项用于在一台主机上为另一台主机构建系统表。
MySQL 数据目录的路径。从 MySQL 5.6.8 开始,mysql_install_db对选项值更加严格。如果路径名的最后一个组件不存在,则只创建它;父目录必须已经存在,否则会发生错误。
--defaults-extra-file=
file_name
在全局选项文件之后但(在 Unix 上)在用户选项文件之前读取此选项文件。如果该文件不存在或无法访问,则会发生错误。如果
file_name
不是绝对路径名,则将其解释为相对于当前目录。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
仅使用给定的选项文件。如果该文件不存在或无法访问,则会发生错误。如果
file_name
不是绝对路径名,则将其解释为相对于当前目录。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
使 mysql_install_db 在DNS 不工作的情况下运行。通常使用主机名创建的授权表条目使用 IP 地址代替。
告诉mysql_install_db保留任何现有
my.cnf
文件而不创建新的默认my.cnf
文件。这个选项是在 MySQL 5.6.20 中添加的。的同义词
--datadir
。不要读取任何选项文件。如果程序启动因从选项文件中读取未知选项而失败,
--no-defaults
可用于防止它们被读取。有关此选项和其他选项文件选项的其他信息,请参阅第 4.2.2.3 节,“影响选项文件处理的命令行选项”。
在 Unix 平台上,此选项提供更安全的 MySQL 安装。调用 mysql_install_db会
--random-passwords
导致它在正常操作之外执行以下操作:由于这些操作,安装后必须启动服务器,
root
使用写入.mysql_secret
文件的密码进行连接,并指定新root
密码。在此之前,root
不能做任何其他事情。必须为root
您打算使用的每个帐户完成此操作。要更改密码,您可以使用SET PASSWORD
语句(例如,使用mysql客户端)。您还可以使用mysqladmin或 mysql_secure_installation。新的 RPM 安装操作(不是升级) 使用该 选项调用mysql_install_db 。
--random-passwords
(使用 Unbreakable Linux Network 的 RPM 的安装操作不受影响,因为它们不使用 mysql_install_db。)从 MySQL 5.6.9 开始,新的 Solaris PKG 安装操作(不是升级)使用该选项 调用mysql_install_db 。
--random-passwords
对于使用二进制
.tar.gz
分发或源代码分发的安装操作,您可以手动调用 带有该 选项的mysql_install_db--random-passwords
以使您的 MySQL 安装更安全。建议这样做,尤其是对于具有敏感数据的站点。供内部使用。此选项在 MySQL 安装过程中用于使用 RPM 包执行的安装操作。
创建授权表条目时使用 IP 地址而不是主机名。如果您的 DNS 不起作用,此选项会很有用。
For internal use. This option specifies the directory under which mysql_install_db looks for support files such as the error message file and the file for populating the help tables.
The system (login) user name to use for running mysqld. Files and directories created by mysqld are owned by this user. You must be the system
root
user to use this option. By default, mysqld runs using your current login name and files and directories that it creates are owned by you.Verbose mode. Print more information about what the program does.
供内部使用。此选项用于创建 Windows 发行版。