MySQL數據庫既數據目錄位置,包括目錄裡各種文件既位置)可根據實際情況進行調整。調整既法有兩種,一種係使用符號連結;一種用伺服器啟動選項。
下面一個列表說明左數據目錄及目錄中文件各自適宜採用既方法:
Table 3.2. MySQL數據目錄及目錄中文件位置的調整方法
整個數據目錄 | 啟動選項和符號連結 |
數據庫目錄 | 符號連結 |
數據表 | 符號連結 |
InnoDB數據表空間 | 啟動選項 |
PID文件 | 啟動選項 |
日誌文件 | 啟動選項 |
下面係各種調整方法既具體操作過程:
-
在調整MySQL既數據目錄時,要先停止伺服器,再把數據目錄移動到新的位置。接著,我們可選擇在原來目錄下創建一個符號連結指向新既位置,或者用啟動選擇--datadir指向新的數據目錄。推薦用創建符號連結的方法,因為如果果個數據目錄中有my.cnf文件,相應既伺服器還能找到它。
-
數據庫只能存在於MySQL數據目錄中,所以只能使用符號連結既方法調整它的位置。在Linux系統的操作步驟如:
-
關閉伺服器;
-
把數據庫目錄拷貝到新的位置;
-
刪除原來的數據庫目錄;
-
在原來的MySQL數據目錄中創建一個同名符號連結指向新的位置;
-
重新啟動伺服器。
在windows下的操作方法不些不同,操作方法如下:
-
關閉伺服器;
-
把數據庫目錄移動新的位置;
-
刪除原來的數據庫目錄;
-
在原來數據目錄下建一個同名的.sym文件,在文件中輸入數據庫新目錄的全路徑,如c:\mysql\newdir\mydb。這個文件就相當於Linux下的符號連結;
-
重啟伺服器。
為了支持符號連結功能,必須用--use-symbolic-links選項啟動伺服器;或在選項文件的[mysqld]節中添加use-symbolic-links選項。 MySQL必須是3.23.16以上版本且是max伺服器(mysqld-max或mysqld-max-nt)。
-
-
要移動數據表,必須滿足以下所有條件才行:
-
MySQL的版本必須是4.0或以上的版本;
-
作業系統必須有一個可用的realpath()調用;
-
移動的數據表必須是MyISAM類型的數據表。
在滿足以上所有條件後,我們就可把.MYD數據文件和MYI索引文件移到新位置,再在原來位置創建兩個同名符號連結指定新的位置。注意,.frm定義文件仍需留在原來的數據庫目錄中。
如以上條件不能全部滿足,最好不要移動數據表文件。否則一旦你運行ALTER TABLE、OPTIMIZE TABLE、REPAIR TABLE語句對移動過的數據表進行優化或修改,這樣數據表就會回到原來的位置,使移動操作失效。因為這些命令的執行過程是這樣的:它會先在數據目錄中創建一個臨時數據表並對這個臨時數據表進行優化或修改,然後刪除原來的數據表(這裡是你為了移動數據表而創建的一個符號連結),再把臨時數據表更名為原來的數據表名稱。這樣一來,你移走的數據表就和這個數據庫完全沒有關係了。基於以下的不穩定因素,如無特殊必要,不建議移動數據表。
-
-
InnoDB表空間是通過在選項文件中使用innodb_data_home_dir和innodb_data_file_path選項列出InnoDB表空間組成文件清單的方法來配置的,所以我們可通過修改這些選項來重新安置InnoDB表空間的組成文件。步驟如下:
-
關閉伺服器;
-
移動組成表空間的文件;
-
修改選項文件,指出組成表空間的文件的新位置;
-
重啟伺服器。
-
-
狀態文件和日誌文件的位置可通過選項文件或啟動伺服器時指定。
留言列表