14.5.1 Resizing the InnoDB System Tablespace 本节描述如何增加或者减少InnoDB 系统表空间的大小 增加InnoDB 系统表空间的大小 最简单的方式增加InnoDB 系统表空间的大小是配置它从一开始就自动增长。 指定最后数据文件在表空间定义的自动增长属性, InnoDB 自动增加文件的大小 64MB增加 当它空间不足的时候。 增加的空间可以修改通过innodb_autoextend_increment 系统变量, 单位MB mysql> show variables like '%innodb_autoextend_increment%'; +-----------------------------+-------+ | Variable_name | Value | +-----------------------------+-------+ | innodb_autoextend_increment | 64 | +-----------------------------+-------+ 1 row in set (0.00 sec) 你可以扩展系统表空间通过增加另外的定义大小的数据文件 。 1. 关闭MySQL server 2.如果之前的最新数据文件定义为自动增长,改变它的定义来使用一个固定值, 基于它已经实际的大小。 检查数据文件的大小, 最接近1MB的倍数, 并明确指定 在 innodb_data_file_path mysql> show variables like '%innodb_data_file_path%'; +-----------------------+------------------------+ | Variable_name | Value | +-----------------------+------------------------+ | innodb_data_file_path | ibdata1:12M:autoextend | +-----------------------+------------------------+ 1 row in set (0.00 sec) 3.增加一个新的文件到 innodb_data_file_path的尾部,可以让文件自动增长。 只有在innodb_data_file_path 的最后的文件可以指定为auto-extending. 4.Start the MySQL server again 这个例子, 这个tablespace 只有一个自动增长的文件ibdata1; innodb_data_home_dir = innodb_data_file_path = /ibdata/ibdata1:10M:autoextend 假设这个数据文件, 随着时间的推移, 已经增加到988MB。 这里是配置行,在修改原始数据文件来使用一个固定大小和增加一个自动扩展的文件: innodb_data_home_dir = innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend 当你增加一个新的文件到系统表空间配置,确保文件不引用存在的文件, InnoDB 创建和初始化文件当你重启服务器的时候: Decreasing the Size of the InnoDB System Tablespace 降低InnoDB SYSEM 表空间大小 你不能删除一个数据文件从system 表空间, 减少系统表空间大小,使用这个过程: