Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


7.8.1 设置多个数据目录

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

为新实例设置数据目录有不同的方法:

  • 创建新的数据目录。

  • 复制现有的数据目录。

以下讨论提供了每种方法的更多细节。

Warning

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

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

使用这种方法时,数据目录将恢复到初始安装状态,没有用户数据和默认的 MySQL 账户。

在 Unix 上,初始化数据目录。请参阅第 2.9 节,“Postinstallation Setup and Testing”

在 Windows 上,数据目录是 MySQL 分发的一部分:

  • Windows 的 ZIP归档分发包含未修改的数据目录。您可以将其.unpack 到临时位置,然后将data目录复制到要设置新的实例的位置。

  • Windows MSI 安装程序创建并设置了安装服务器使用的数据目录,同时也创建了一个原始的template数据目录,名为data,位于安装目录下。使用 MSI 包安装完成后,可以将模板数据目录复制以设置其他 MySQL 实例。

使用这种方法时,MySQL 账户或用户数据在数据目录中将被保留到新的数据目录中。

  1. 停止现有 MySQL 实例,以便将任何挂起的更改写回磁盘。

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

  3. 复制现有实例使用的my. cnfmy.ini选项文件。这将作为新实例的基础。

  4. 将新的选项文件修改为,使得任何指向原始数据目录的路径名都指向新数据目录。同时,修改其他每个实例必须唯一的选项,如TCP/IP端口号和日志文件。关于需要每个实例唯一的参数,请见第7.8节,“在一台机器上运行多个MySQL实例”

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