修改 mysql 5 的 innodb_data_file_path 值是否安全?

修改 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

我不完全确定这是损坏的原因,因为之前数据库空间不足。我的问题是,一旦空间已满,修改数据库的最大大小是否安全?

答案1

如果您想确定,您应该执行以下操作:

首先,将 /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

原因有二:

  1. 变化很小
  2. ibdata1 总是会被写入,因为撤消表空间位于其中,必须写入。这会导致 ibdata1 偶尔增长。您可能再次遇到这种情况。因此,最好删除 max 选项。

相关内容