此处所述的符号链接支持以及控制它的 --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 DIRECTORY和INDEX DIRECTORY选项到CREATE TABLE。请参阅 第 15.1.20 节 “CREATE TABLE 语句”。或者,如果 mysqld 未运行,则可以使用命令行中的 ln -s 手动完成符号链接。注意DATA DIRECTORY和INDEX DIRECTORY选项之一或两者使用的路径可能不包括 MySQLdata目录。(错误 #32167)myisamchk 不会用数据文件或索引文件替换符号链接。它直接对符号链接指向的文件进行操作。任何临时文件都是在数据文件或索引文件所在的目录中创建的。对于
ALTER TABLE、OPTIMIZE TABLE和REPAIR TABLE语句也是如此。-
注意
删除使用符号链接的表时,符号链接和符号链接指向的文件都会被删除。这是一个非常好的理由,不 应该以
root操作系统用户身份运行 mysqld,也不应该允许操作系统用户对 MySQL 数据库目录具有写入权限。 如果使用
ALTER TABLE ... RENAME或RENAME TABLE重命名表,并且没有将表移动到另一个数据库,则数据库目录中的符号链接将重命名为新名称,数据文件和索引文件也会相应地重命名。如果使用
ALTER TABLE ... RENAME或RENAME TABLE将表移动到另一个数据库,则该表将移动到另一个数据库目录。如果表名已更改,则新数据库目录中的符号链接将重命名为新名称,数据文件和索引文件也会相应地重命名。如果您没有使用符号链接,请使用 mysqld 选项
--skip-symbolic-links启动 mysqld,以确保没有人可以使用 mysqld 删除或重命名数据目录之外的文件。
不支持以下表符号链接操作
ALTER TABLE忽略DATA DIRECTORY和INDEX DIRECTORY表选项。