扩展mysql中innodb_data_file_path的内容

3
假设一个MySQL 5.5服务器使用以下配置来存储InnoDB数据:
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
1个回答

6
您可以在此处找到说明:http://dev.mysql.com/doc/refman/5.0/en/innodb-configuration.html。如果您在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中它说xxx页”,这意味着您必须将my.cnf中的file1大小更改为其实际大小(当它是唯一的文件时,超过了配置文件中指定的大小是可以的,但mysql希望它的大小恰好是指定的大小,并在出现第二个文件时增长第二个文件)。这很容易猜到,只需增加1M即可。因此,您最终将得到以下配置:

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

请小心操作,尽量避免损坏您的数据 :)


我的意思是,为现有的数据库添加一个额外的数据文件路径会起作用吗? - user121196

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接