注意
--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选项中的一个或两个一起使用的路径可能不包含MySQL data目录。错误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表选项。