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

MySQL 8.3 Reference Manual  /  ...  /  Using Symbolic Links for MyISAM Tables on Unix

10.12.2.2 使用 Unix 上的符号链接 для MyISAM 表

Note

符号链接支持,如下所述,连同控制它的 --symbolic-links 选项,已经弃用;预计在未来版本的 MySQL 中删除该选项。此外,该选项默认情况下是禁用的。

符号链接仅完全支持 MyISAM 表。对于其他存储引擎的表文件,如果您尝试使用符号链接,可能会出现奇怪的问题。对于 InnoDB 表,请使用 第 17.6.1.2 节,“在外部创建表” 中解释的替代技术。

不要在不支持完整 realpath() 调用的系统上符号链接表。(Linux 和 Solaris 支持 realpath())。要确定您的系统是否支持符号链接,请检查 have_symlink 系统变量的值,使用以下语句:

SHOW VARIABLES LIKE 'have_symlink';

MyISAM 表的符号链接处理如下:

  • 在数据目录中,您总是拥有数据 (.MYD) 文件和索引 (.MYI) 文件。数据文件和索引文件可以移到其他地方,并在数据目录中用符号链接替换。

  • 您可以独立地将数据文件和索引文件符号链接到不同的目录。

  • 要指示正在运行的 MySQL 服务器执行符号链接,请使用 DATA DIRECTORYINDEX DIRECTORY 选项来 CREATE TABLE。见 第 15.1.20 节,“CREATE TABLE 语句”。否则,如果 mysqld 未运行,可以使用命令行上的 ln -s 手动创建符号链接。

    Note

    使用 DATA DIRECTORYINDEX DIRECTORY 选项的路径不得包括 MySQL data 目录。(Bug #32167)

  • myisamchk 不会将符号链接替换为数据文件或索引文件。它直接在符号链接所指向的文件上工作。任何临时文件都将在数据文件或索引文件所在的目录中创建。同样适用于 ALTER TABLEOPTIMIZE TABLEREPAIR TABLE 语句。

  • Note

    当您删除使用符号链接的表时,符号链接和符号链接所指向的文件都将被删除。这是一個非常好的理由 以 root 操作系统用户身份运行 mysqld 或允许操作系统用户拥有 MySQL 数据库目录的写入访问权限。

  • 如果您使用 ALTER TABLE ... RENAMERENAME TABLE 重命名表,不移动表到另一个数据库,数据库目录中的符号链接将被重命名为新名称,数据文件和索引文件将被相应地重命名。

  • 如果您使用 ALTER TABLE ... RENAMERENAME TABLE 将表移到另一个数据库,表将被移到其他数据库目录。如果表名更改,新数据库目录中的符号链接将被重命名为新名称,数据文件和索引文件将被相应地重命名。

  • 如果您不使用符号链接,请使用 mysqld 选项启动,带有 --skip-symbolic-links,以确保没有人可以使用 mysqld 删除或重命名数据目录外的文件。

这些表符号链接操作不受支持:

  • ALTER TABLE 忽略 DATA DIRECTORYINDEX DIRECTORY 表选项。