Mysql
修改 mysql 5 的 innodb_data_file_path 值是否安全?
我最近在從以下更改此參數的值後遇到了數據損壞
my.cnf
:innodb_data_file_path = ibdata1:10M:autoextend:max:128M
到 :
innodb_data_file_path = ibdata1:10M:autoextend:max:256M
我不完全確定這是損壞的原因,因為以前數據庫空間不足。我的問題是,一旦空間已滿,修改數據庫的最大大小是否安全?
如果你想確定,你應該做到以下幾點:
首先,將/etc/my.cnf中的innodb_data_file_path改成
[mysqld] innodb_data_file_path = ibdata1:10M:autoextend
的,執行以下
cd service mysql restart --skip-networking --skip-grant-tables mysqldump --single-transaction --routines --triggers --all-databases > MySQLData.sql service mysql stop
確保 /root/MySQLData.sql 存在。然後,繼續
rm /var/lib/mysql/ibdata1 rm /var/lib/mysql/ib_logfile0 rm /var/lib/mysql/ib_logfile1 service mysql start --skip-networking --skip-grant-tables mysql < MySQLData.sql service mysql restart
試試看 !!!
實際上,我的工作中有一個使用 MySQL 作為其儲存庫的監控,我將最大數量從 1TB 更改為 16TB。在數據收集過程中,什麼都不能寫入,但沒有引入損壞。你可以換個號碼。
正如我提到的,我將完全刪除最大值
innodb_data_file_path = ibdata1:10M:autoextend
有兩個原因:
- 變化很小
- ibdata1 將始終被寫入,因為其中的撤消表空間必須寫入。這將導致 ibdata1 偶爾增長。你可能會再次遇到這種情況。因此,最好刪除 max 選項。