一、说明
1、mysql表引擎InnoDB
2、执行插入语句INSERT INTO ds_data(cityid, city) VALUES ('10', '杭州');
二、调试
错误提示说此表中存储数据已经满了,所以查看一下总行数SELECT COUNT(*)FROM ds_data
结果是有810,635行,这个行数的数据并不算多。以前在MyISAM引擎的表中从未遇到。
三、解决
1、首先看看存储数据的分区空间是否已经满了,如果分区/磁盘空间已经占完,数据必然插入不进去了
2、my.cnf或者my.ini中修改或者添加innodb_data_file_path
如果你没有指定innodb_data_file_path,开始的默认行为是创建一个单独的大小10MB名为ibdata1的自扩展数据文件。在那些支持大文件的操作系统上,你可以设置文件大小超过4GB。你也可
以使用原始磁盘分区作为数据文件。
innodb_data_file_path的值应该为一个或多个数据文件规格的列表。如果你命名一个以上的数据文件,用 分号(‘;’)分隔它们:
innodb_data_file_path=datafile_spec1[;datafile_spec2]...
默认只有1个ibdata1大小是10M
[mysqld]
innodb_data_file_path=ibdata1:10M:autoextend
自己配置2个分别为ibdata1和ibdata2大小都为50M
一个表空间,它在数据目录里包含一个名为ibdata1的固定尺寸50MB的数据文件和一个名为ibdata2大小为50MB的自动扩展文件,其可以像这样被配置:
[mysqld]
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend
所以提示错误:ERROR 1114 (HY000): The table 'ds_data' is full是如果磁盘空间未满时就设置innodb_data_file_path这家一个扩展ibdata2并且把值设置大一点这个实例中只设置了50M.
转载请注明:谷谷点程序 » ERROR 1114 (HY000): The table 'ds_data' is full (innodb_data_file_path)