此處描述的符號連結支援,以及控制它的 --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
資料表選項。