2012-04-01 132 views
2

我正在運行一個linux服務器,我想知道是否以及如何更改Mysql服務器的內容以保存在外部硬盤上而不是現在存儲的位置。更改mysql數據庫的位置

回答

4

確切的方法取決於您使用MyISAM還是InnoDB表。

對於MyISAM,每個數據庫都是一個包含表格,格式,索引等的目錄。所有這些目錄通常位於/var/lib/mysql/目錄中。要放入不同的卷,可以更改datadir配置選項,或者使/var/lib/mysql/成爲該新卷的掛載點。

對於InnoDB,默認是在同一個/var/lib/mysql/目錄下使用單個文件;所以在這裏增加一個新的音量也會起作用。同樣,如果您想將所有卷放在其他位置,可以使用配置變量來更改確切位置。

此外,InnoDB可以使用整個分區或塊設備作爲數據存儲,跳過文件系統。在大多數情況下,假設的速度收益可以忽略不計,因此除非您已經擁有良好的卷管理環境,否則通常不會提示。

最後,如果你已經有了一些你想要移動的數據,最簡單的辦法就是在關閉mysqld進程之後直接複製整個/var/lib/mysql/目錄。

1

除了其他答案,我建議有一個MySQL轉儲程序(也許mysqldump --all-databases),然後清理你的MySQL服務器並重新加載它。

當然,這比其他技術(直接移動內部MySQL服務器)慢一點,但它具有行使數據庫備份和恢復技能的決定性優勢。它也使您可以稍微更改數據庫配置,如果你想。

我的確希望你有一個定期運行的數據庫備份程序。