MySQL安装完成后,必须初始化数据目录,包括mysql
系统数据库中的表:
对于某些 MySQL 安装方法,数据目录初始化是自动的,如 第 2.10 节“安装后设置和测试”中所述。
对于其他安装方法,您必须手动初始化数据目录。这些包括在 Unix 和类 Unix 系统上从通用二进制和源代码分发安装,以及在 Windows 上从 ZIP 存档包安装。
本节介绍如何为数据目录初始化不是自动的MySQL 安装方法手动初始化数据目录。有关启用测试服务器是否可访问和正常工作的一些建议命令,请参阅第 2.10.3 节,“测试服务器”。
在此处显示的示例中,服务器旨在在mysql
登录帐户的用户 ID 下运行。这假定存在这样的帐户。如果该帐户不存在,请创建该帐户(请参阅
创建 mysql 用户和组),或者替换您计划用于运行服务器的不同现有登录帐户的名称。
将位置更改为 MySQL 安装的顶级目录,这通常是
/usr/local/mysql
(根据需要调整系统的路径名):cd /usr/local/mysql
您可以在目录中找到多个文件和子目录,包括
bin
和scripts
子目录,其中包含服务器以及客户端和实用程序。初始化数据目录,包括
mysql
包含初始 MySQL 授权表的数据库,这些表确定如何允许用户连接到服务器。例如:scripts/mysql_install_db --user=mysql
通常,数据目录初始化只需要在您第一次安装 MySQL 后完成。(对于现有安装的升级,请执行升级过程;请参阅 第 2.11 节,“升级 MySQL”。)但是,初始化数据目录的命令不会覆盖任何现有的权限表,因此在任何情况下运行都是安全的.
重要的是要确保数据库目录和文件归
mysql
登录帐户所有,以便服务器在稍后运行时具有对它们的读写访问权限。如果您运行 mysql_install_db为 确保这一点root
,请包含--user
如图所示的选项。mysql_install_db命令初始化服务器的数据目录 。在数据目录下,它为
mysql
包含授权表的test
数据库和可用于测试 MySQL 的数据库创建目录。该程序还为初始帐户创建权限表条目。test_
. 有关授权表的完整列表和说明,请参阅 第 6.2 节“访问控制和帐户管理”。可能需要指定其他选项,例如
--basedir
or--datadir
如果 mysql_install_db无法识别安装目录或数据目录的正确位置。例如(在一行中输入命令):scripts/mysql_install_db --user=mysql --basedir=/opt/mysql/mysql --datadir=/opt/mysql/mysql/data
为了更安全的安装, 请使用该 选项调用mysql_install_db 。
--random-passwords
这导致它为 MySQLroot
帐户分配一个随机密码,为这些帐户设置“密码过期”标志,并删除匿名用户 MySQL 帐户。有关其他详细信息,请参阅 第 4.4.3 节,“mysql_install_db — 初始化 MySQL 数据目录”。(使用 Unbreakable Linux Network 的 RPM 的安装操作不受影响,因为它们不使用mysql_install_db。)如果你不想拥有
test
数据库,你可以在启动服务器后删除它,使用第 2.10.4 节,“保护初始 MySQL 帐户”中的说明。如果您此时遇到mysql_install_db 的问题,请参阅 第 2.10.1.1 节,“运行 mysql_install_db 的问题”。
在没有任何选项文件的情况下,服务器以其默认设置启动。(请参阅 第 5.1.2 节,“服务器配置默认值”。)要指定 MySQL 服务器在启动时应使用的选项,请将它们放在一个选项文件中,例如
/etc/my.cnf
或/etc/mysql/my.cnf
. (参见 第 4.2.2.2 节,“使用选项文件”。)例如,您可以使用选项文件来设置secure_file_priv
系统变量。要安排 MySQL 在系统启动时无需手动干预即可启动,请参阅第 2.10.5 节,“自动启动和停止 MySQL”。
数据目录初始化在数据库中创建时区表
mysql
但不填充它们。为此,请使用 第 5.1.13 节,“MySQL 服务器时区支持”中的说明。