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


MySQL 8.4 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节,“外部创建表”中的备用技术。

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

SHOW VARIABLES LIKE 'have_symlink';

符号链接在 MyISAM 表中的处理方式如下:

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

  • 您可以独立地 symlink 数据文件和索引文件到不同的目录。

  • 要让运行中的 MySQL 服务器执行符号链接,请使用 DATA DIRECTORYINDEX DIRECTORY 选项来CREATE TABLE。见第15.1.20节,“CREATE TABLE Statement”。Alternatively,如果mysqld未运行,符号链接可以使用ln -s从命令行执行。

    Note

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

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

  • Note

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

  • 如果您使用ALTER TABLE ... RENAMERENAME TABLE重命名表,并且您没有将表移动到另一个数据库,数据库目录中的符号链接将被重命名,以匹配新的名称,并且数据文件和索引文件也将被重命名。

  • 如果您使用ALTER TABLE ... RENAMERENAME TABLE将表移动到另一个数据库,表将被移动到另一个数据库目录。如果表名发生变化,新数据库目录中的符号链接将被重命名,以匹配新的名称,并且数据文件和索引文件也将被重命名。

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

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

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