Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

7.8.1 设置多个数据目录

每个 MySQL 实例在一台机器上都应该有其自己的数据目录。该位置使用 --datadir=dir_name 选项指定。

有多种方法可以设置新的数据目录:

  • 创建一个新的数据目录。

  • 复制现有的数据目录。

以下讨论将详细介绍每种方法。

Warning

通常,不应该让两个服务器更新同一个数据库中的数据。这可能会导致不愉快的惊喜,如果您的操作系统不支持无故障的系统锁定。如果(尽管有这个警告)您运行多个服务器使用同一个数据目录,并且它们启用了日志记录,则必须使用适当的选项指定唯一的日志文件名,以便每个服务器。否则,服务器将尝试记录到同一个文件中。

即使遵循前面的警告,这种设置也只能与 MyISAMMERGE 表一起工作,而不能与其他存储引擎一起工作。此外,在 NFS 环境中,这种警告始终适用。允许多个 MySQL 服务器访问同一个数据目录是非常 糟糕的想法。主要的问题是 NFS 是速度瓶颈。它不适合这种用途。另一个风险是您必须想办法确保两个或多个服务器不会相互干扰。通常,NFS 文件锁定是由 lockd 守护进程处理的,但目前没有平台可以在每种情况下都可靠地执行锁定。

创建新的数据目录

使用这种方法,数据目录将处于与初始安装 MySQL 时相同的状态,具有默认的 MySQL 帐户和无用户数据。

在 Unix 上,初始化数据目录。请参阅 第 2.9 节,“安装后设置和测试”

在 Windows 上,数据目录包含在 MySQL 发行版中:

  • Windows Zip 存档发行版包含未修改的数据目录。您可以将其解压缩到临时位置,然后将 data 目录复制到要设置的新实例的位置。

  • Windows MSI 软件包安装程序创建和设置了服务器使用的数据目录,但也创建了一个原始的 模板 数据目录,名为 data,位于安装目录下。在使用 MSI 软件包安装后,可以将模板数据目录复制到设置新的 MySQL 实例。

复制现有的数据目录

使用这种方法,现有的 MySQL 帐户或用户数据将被带到新的数据目录中。

  1. 停止使用数据目录的现有 MySQL 实例。这必须是一个干净的关闭,以便实例将任何待定的更改刷新到磁盘。

  2. 将数据目录复制到新数据目录的位置。

  3. my.cnfmy.ini 选项文件复制到新实例中,作为基础。

  4. 修改新选项文件,以便任何指向原始数据目录的路径名都指向新数据目录。此外,还需要修改其他必须唯一的每个实例的选项,例如 TCP/IP 端口号和日志文件。有关每个实例必须唯一的参数列表,请参阅 第 7.8 节,“在一台机器上运行多个 MySQL 实例”

  5. 启动新实例,告诉它使用新选项文件。