此處所述的符號連結支援,以及控制它的 --symbolic-links
選項已過時;預計在未來版本的 MySQL 中移除這些。此外,該選項預設為停用。
符號連結僅完全支援 MyISAM
表格。對於其他儲存引擎的表格使用的檔案,如果您嘗試使用符號連結,可能會遇到奇怪的問題。對於 InnoDB
表格,請改用 第 17.6.1.2 節 「外部建立表格」 中解釋的替代技術。
不要在沒有完全運作的 realpath()
呼叫的系統上符號連結表格。(Linux 和 Solaris 支援 realpath()
)。若要判斷您的系統是否支援符號連結,請使用此陳述式檢查 have_symlink
系統變數的值
SHOW VARIABLES LIKE 'have_symlink';
處理 MyISAM
表格的符號連結方式如下
在資料目錄中,您永遠會有資料 (
.MYD
) 檔案和索引 (.MYI
) 檔案。資料檔案和索引檔案可以移動到其他位置,並在資料目錄中由符號連結取代。您可以獨立地將資料檔案和索引檔案符號連結到不同的目錄。
若要指示執行中的 MySQL 伺服器執行符號連結,請使用
CREATE TABLE
的DATA DIRECTORY
和INDEX DIRECTORY
選項。請參閱 第 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
將表格移動到另一個資料庫,則表格會移動到另一個資料庫目錄。如果表格名稱已變更,則新資料庫目錄中的符號連結會重新命名為新名稱,並且資料檔和索引檔也會相應地重新命名。如果您未使用符號連結,請使用
--skip-symbolic-links
選項啟動 mysqld,以確保沒有人可以使用 mysqld 來刪除或重新命名資料目錄之外的檔案。
不支援這些表格符號連結操作。
ALTER TABLE
會忽略DATA DIRECTORY
和INDEX DIRECTORY
表格選項。