Documentation Home
MySQL 8.0 参考手册  / 第8章优化  / 8.12 优化MySQL服务器  / 8.12.2 使用符号链接  /  8.12.3.3 在 Windows 上使用数据库的符号链接

8.12.3.3 在 Windows 上使用数据库的符号链接

在 Windows 上,符号链接可用于数据库目录。这使您能够通过设置指向它的符号链接将数据库目录放在不同的位置(例如,在不同的磁盘上)。在 Windows 上使用数据库符号链接与在 Unix 上使用它们类似,尽管设置链接的过程不同。

假设您要为名为 的数据库放置数据库mydb目录 D:\data\mydb。为此,在 MySQL 数据目录中创建一个指向 D:\data\mydb. 但是,在创建符号链接之前,请确保 D:\data\mydb目录存在,必要时创建它。如果您已经mydb在数据目录中命名了一个数据库目录,请将其移动到D:\data. 否则,符号链接无效。为避免出现问题,请确保在移动数据库目录时服务器未运行。

在 Windows 上,您可以使用mklink命令 创建符号链接 。此命令需要管理权限。

  1. 确保所需的数据库路径存在。对于此示例,我们使用 D:\data\mydb, 和一个名为 的数据库 mydb

  2. 如果数据库尚不存在, CREATE DATABASE mydb请在 mysql客户端中创建它。

  3. 停止 MySQL 服务。

  4. 使用 Windows 资源管理器或命令行,将目录mydb从数据目录移动到D:\data,替换同名目录。

  5. 如果您尚未使用命令提示符,请打开它,然后将位置更改为数据目录,如下所示:

    C:\> cd \path\to\datadir

    如果你的 MySQL 安装在默认位置,你可以使用这个:

    C:\> cd C:\ProgramData\MySQL\MySQL Server 5.7\Data
  6. mydb在数据目录中,创建一个指向数据库目录位置的 符号链接 :

    C:\> mklink /d mydb D:\data\mydb
  7. 启动 MySQL 服务。

在此之后,数据库 mydb中创建的所有表都在 D:\data\mydb.

.sym或者,在 MySQL 支持的任何 Windows 版本上,您可以通过在包含目标目录路径的数据目录中 创建文件来创建指向 MySQL 数据库的符号链接。该文件应命名 db_name.symdb_name数据库名称。

.sym默认情况下启用 在 Windows 上使用文件支持数据库符号链接 。如果不需要.sym文件符号链接,可以通过 使用 选项启动mysqld来禁用对它们的支持。--skip-symbolic-links要确定您的系统是否支持 .sym文件符号链接,请have_symlink使用以下语句检查系统变量的值:

SHOW VARIABLES LIKE 'have_symlink';

要创建.sym文件符号链接,请使用以下过程:

  1. 将位置更改为数据目录:

    C:\> cd \path\to\datadir
  2. 在数据目录中,创建一个 mydb.sym包含以下路径名的文本文件:D:\data\mydb\

    笔记

    新数据库和表的路径名应该是绝对的。如果指定相对路径,则位置是相对于mydb.sym文件的。

在此之后,数据库 mydb中创建的所有表都在 D:\data\mydb.

笔记

因为对.sym文件的支持与使用 mklink提供的本机符号链接支持是多余的,所以不推荐使用.sym 文件;期望在未来的 MySQL 版本中删除对它们的支持。

以下限制适用于 .sym在 Windows 上使用文件进行数据库符号链接。这些限制不适用于使用mklink创建的符号链接。

  • 如果 MySQL 数据目录中存在与数据库同名的目录,则不使用符号链接。

  • --innodb_file_per_table 无法使用 该选项。

  • 如果将mysqld作为服务运行,则不能使用映射到远程服务器的驱动器作为符号链接的目标。作为解决方法,您可以使用完整路径 ( \\servername\path\)。