Documentation Home

2.10.1 初始化数据目录

MySQL安装完成后,必须初始化数据目录,包括mysql系统数据库中的表:

  • 对于某些 MySQL 安装方法,数据目录初始化是自动的,如 第 2.10 节“安装后设置和测试”中所述。

  • 对于其他安装方法,您必须手动初始化数据目录。这些包括在 Unix 和类 Unix 系统上从通用二进制和源代码分发安装,以及在 Windows 上从 ZIP 存档包安装。

本节介绍如何为数据目录初始化不是自动的MySQL 安装方法手动初始化数据目录。有关启用测试服务器是否可访问和正常工作的一些建议命令,请参阅第 2.10.3 节,“测试服务器”

在此处显示的示例中,服务器旨在在mysql登录帐户的用户 ID 下运行。这假定存在这样的帐户。如果该帐户不存在,请创建该帐户(请参阅 创建 mysql 用户和组),或者替换您计划用于运行服务器的不同现有登录帐户的名称。

  1. 将位置更改为 MySQL 安装的顶级目录,这通常是 /usr/local/mysql(根据需要调整系统的路径名):

    cd /usr/local/mysql

    您可以在目录中找到多个文件和子目录,包括binscripts子目录,其中包含服务器以及客户端和实用程序。

  2. 初始化数据目录,包括 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 节“访问控制和帐户管理”

    可能需要指定其他选项,例如 --basediror --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 的问题”

  3. 在没有任何选项文件的情况下,服务器以其默认设置启动。(请参阅 第 5.1.2 节,“服务器配置默认值”。)要指定 MySQL 服务器在启动时应使用的选项,请将它们放在一个选项文件中,例如/etc/my.cnf/etc/mysql/my.cnf. (参见 第 4.2.2.2 节,“使用选项文件”。)例如,您可以使用选项文件来设置 secure_file_priv系统变量。

  4. 要安排 MySQL 在系统启动时无需手动干预即可启动,请参阅第 2.10.5 节,“自动启动和停止 MySQL”

  5. 数据目录初始化在数据库中创建时区表 mysql但不填充它们。为此,请使用 第 5.1.13 节,“MySQL 服务器时区支持”中的说明。