MySQL 错误 1114:table 已满
MySQL error 1114: The table is full
x86 MySQL Win 7 Pro x86 上的 5.7.23。 NTFS.
当 table space 超过 4G 时遇到错误 1114 "the table is full"。我已经尝试为 "file_per_table" 设置创建同时包含 0 和 1 的数据库。
这个帖子 建议我应该一直很好到 2T。
将 table 转换为 MyISAM 可行,但希望保留 Innodb 附带的日志记录和恢复。
x64 MySQL 在 Win 7 Pro x64(也是 NTFS)上工作。
MAX_ROWS=10000000000 在创建 TABLE 中。我意识到这是一个 MyISAM-only 参数,应该被 InnoDb 忽略。其他地方是否有特定于 Innodb 的设置?或者这是一个错误?
编辑:不要使用 32 位 OS 或 32 位 MySQL。仅使用 64 位。
https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/windows-installation.html 说:
If you need tables with a size larger than 4GB, install MySQL on an NTFS or newer file system.
您的表最大为 4GB 可能太巧合了,这是 FAT32 文件系统的最大文件大小。
我建议您仔细检查存储数据的文件系统是否为 NTFS。请注意,它不一定是 C: 驱动器。 运行 MySQL 客户端中的此 SQL 查询:
SELECT @@datadir, @@innodb_data_file_path;
datadir 是大多数 MySQL 数据文件和日志文件的默认位置。
如果innodb_data_file_path
只是命名数据文件,那么它将是相对于数据目录的。但是 innodb_data_file_path
也可以命名文件的完整路径名,并且可以位于不在数据目录下的另一个位置。
innodb_data_file_path
还可以选择为全局表空间设置最大大小,例如,如果值是这样的:
ibdata1:12M:autoextend:max:4GB
有关详细信息,请参阅 https://dev.mysql.com/doc/refman/5.7/en/innodb-init-startup-configuration.html。
此外,单个表可以命名数据目录之外的位置,但如果您这样做了,您可能会知道它,因为它在您创建时需要一个明确的选项 TABLE.
CREATE TABLE `tablename` ( ... ) DATA DIRECTORY = '/alternative/directory';
有关详细信息,请参阅 https://dev.mysql.com/doc/refman/5.7/en/tablespace-placing.html。
x86 MySQL Win 7 Pro x86 上的 5.7.23。 NTFS.
当 table space 超过 4G 时遇到错误 1114 "the table is full"。我已经尝试为 "file_per_table" 设置创建同时包含 0 和 1 的数据库。
这个帖子
将 table 转换为 MyISAM 可行,但希望保留 Innodb 附带的日志记录和恢复。
x64 MySQL 在 Win 7 Pro x64(也是 NTFS)上工作。
MAX_ROWS=10000000000 在创建 TABLE 中。我意识到这是一个 MyISAM-only 参数,应该被 InnoDb 忽略。其他地方是否有特定于 Innodb 的设置?或者这是一个错误?
编辑:不要使用 32 位 OS 或 32 位 MySQL。仅使用 64 位。
https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/windows-installation.html 说:
If you need tables with a size larger than 4GB, install MySQL on an NTFS or newer file system.
您的表最大为 4GB 可能太巧合了,这是 FAT32 文件系统的最大文件大小。
我建议您仔细检查存储数据的文件系统是否为 NTFS。请注意,它不一定是 C: 驱动器。 运行 MySQL 客户端中的此 SQL 查询:
SELECT @@datadir, @@innodb_data_file_path;
datadir 是大多数 MySQL 数据文件和日志文件的默认位置。
如果innodb_data_file_path
只是命名数据文件,那么它将是相对于数据目录的。但是 innodb_data_file_path
也可以命名文件的完整路径名,并且可以位于不在数据目录下的另一个位置。
innodb_data_file_path
还可以选择为全局表空间设置最大大小,例如,如果值是这样的:
ibdata1:12M:autoextend:max:4GB
有关详细信息,请参阅 https://dev.mysql.com/doc/refman/5.7/en/innodb-init-startup-configuration.html。
此外,单个表可以命名数据目录之外的位置,但如果您这样做了,您可能会知道它,因为它在您创建时需要一个明确的选项 TABLE.
CREATE TABLE `tablename` ( ... ) DATA DIRECTORY = '/alternative/directory';
有关详细信息,请参阅 https://dev.mysql.com/doc/refman/5.7/en/tablespace-placing.html。