笔记
此处描述的符号链接支持以及--symbolic-links
控制它的 选项已被弃用;希望在未来版本的 MySQL 中删除这些。此外,默认情况下禁用该选项。
只有MyISAM
表完全支持符号链接 。对于其他存储引擎的表使用的文件,如果尝试使用符号链接,可能会遇到奇怪的问题。对于InnoDB
表,请改用第 15.6.1.2 节“在外部创建表”中解释的替代技术 。
不要在没有完全操作realpath()
调用的系统上符号链接表。(Linux 和 Solaris 支持realpath()
)。要确定您的系统是否支持符号链接,请have_symlink
使用以下语句检查系统变量的值:
SHOW VARIABLES LIKE 'have_symlink';
复制
MyISAM
表 符号链接的处理工作如下:
-
在数据目录中,您始终拥有数据 (
.MYD
) 文件和索引 (.MYI
) 文件。数据文件和索引文件可以移动到其他地方,并通过符号链接在数据目录中替换。 -
您可以将数据文件和索引文件独立地符号链接到不同的目录。
-
要指示正在运行的 MySQL 服务器执行符号链接,请使用
DATA DIRECTORY
和INDEX DIRECTORY
选项CREATE TABLE
。见 第 13.1.20 节,“CREATE TABLE 语句”。或者,如果 mysqld未运行,则可以 从命令行使用ln -s手动完成符号链接。笔记
与
DATA DIRECTORY
和INDEX DIRECTORY
选项之一或两者一起使用的路径可能不包括 MySQLdata
目录。(错误#32167) -
myisamchk不会用数据文件或索引文件替换符号链接。它直接作用于符号链接指向的文件。任何临时文件都在数据文件或索引文件所在的目录中创建。同样是真实的
ALTER TABLE
,OPTIMIZE TABLE
和REPAIR TABLE
语句。 -
笔记
当您删除使用符号链接的表时,符号 链接和符号链接指向的文件都会被删除。这是一个非常好的理由不运行 mysqld的作为
root
操作系统用户或允许操作系统的用户将不得不MySQL数据库目录的写入权限。 -
如果使用
ALTER TABLE ... RENAME
或重命名表,RENAME TABLE
并且不将表移动到另一个数据库,则数据库目录中的符号链接将重命名为新名称,数据文件和索引文件也相应地重命名。 -
如果您使用
ALTER TABLE ... RENAME
或RENAME TABLE
将表移动到另一个数据库,则该表将移动到另一个数据库目录。如果表名更改,新数据库目录中的符号链接将重命名为新名称,数据文件和索引文件也相应地重命名。 -
如果您不使用符号链接,请使用 选项启动 mysqld,
--skip-symbolic-links
以确保没有人可以使用 mysqld删除或重命名数据目录之外的文件。
不支持这些表符号链接操作:
ALTER TABLE
忽略DATA DIRECTORY
和INDEX DIRECTORY
表选项。