2012-02-05 34 views
0

假設一個MySQL 5.5服務器使用以下配置用於存儲數據的InnoDB擴展innodb_data_file_path中在MySQL

 
innodb_data_file_path = /var/lib/mysql/ibdata:100G;/disk2/mysql/ibdata2:1000M:autoextend 

在一些點以後的時間,如果數據庫已經填充了一段時間。我希望在這個innodb_data_file_path中添加一個額外的路徑,因爲我的磁盤空間不足並且添加了一個新磁盤。這可能嗎?如何做呢? 會像下面的工作?

 
innodb_data_file_path = /var/lib/mysql/ibdata:100G;/disk2/mysql/ibdata2:XXXG;/disk3/mysql/ibdata3:1000M:autoextend 

回答

2

你有它解釋here。如果您在innodb_data_home_dir中未指定路徑,則可以將innodb_data_file_path的絕對路徑,並且可以使用分號分隔格式爲file_name:file_size[:autoextend[:max:max_file_size]]的多個文件。

此外,您可以爲現有數據庫添加新的數據文件。停止mysql,更改innodb_data_file_path並重新啓動它。

一個注意:如果你有配置是這樣的:

innodb_data_file_path=/var/lib/mysql/file1:10M:autoextend

,並要添加新的文件中像

innodb_data_file_path=/var/lib/mysql/file1:10M;/bigmedia/file2:1800M:autoextend

它可能發生,你會收到錯誤當你啓動mysql時(不能初始化InnoDB引擎)......錯誤可能會這樣說:「file1包含xx頁面,但在my.cnf中它是一個sa ys xxx pages「這意味着你將不得不改變my.cnf中file1的大小爲它的實際大小(它超過了它在配置文件中指定的大小......當它是唯一的文件時是可以的,但是mysql期望它正好是指定的大小,並且當你有第二個文件時增長第二個文件)。很容易猜到,只有1M增量。所以,你最終會與像配置:

innodb_data_file_path=/var/lib/mysql/file1:23M;/bigmedia/file2:1800M:autoextend 

小心這一點,並儘量不要破壞你的數據:)

+0

我的意思是爲現有數據庫添加額外的數據文件路徑工作? – user121196 2012-02-05 06:22:05

+0

我已經更新了我的答案。 – 2012-02-05 16:15:08