Mysql 获取错误851';支持最多8052字节的固定列,请使用varchar或COLUMN_格式动态

Mysql 获取错误851';支持最多8052字节的固定列,请使用varchar或COLUMN_格式动态,mysql,mysql-cluster,Mysql,Mysql Cluster,尝试在NDB Cluster 7.3.5中使用磁盘存储创建表时,出现以下错误: Got error 851 'Maximum 8052 bytes of FIXED columns supported, use varchar or COLUMN_FORMAT DYNAMIC instead' from NDBCLUSTER 表的DDL如下所示: DROP TABLE IF EXISTS `temp_audit_table`; CREATE TABLE `temp_audit_table` (

尝试在NDB Cluster 7.3.5中使用磁盘存储创建表时,出现以下错误:

Got error 851 'Maximum 8052 bytes of FIXED columns supported, use varchar or COLUMN_FORMAT DYNAMIC instead' from NDBCLUSTER
表的DDL如下所示:

DROP TABLE IF EXISTS `temp_audit_table`;
CREATE TABLE `temp_audit_table` (
    `id` INT(7) NOT NULL,
    `transaction_id` INT(7) NULL DEFAULT NULL,
    `action_time` DATETIME NULL DEFAULT NULL,
    `logged_in_user` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_bin',
    `action` VARCHAR(20) NULL DEFAULT NULL COLLATE 'latin1_bin',
    `entity_type` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_bin',
    `entity_index` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_bin',
    `item_changed` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_bin',
    `description` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_bin',
    `old_value` VARCHAR(4000) NULL DEFAULT NULL COLLATE 'latin1_bin',
    `new_value` VARCHAR(4000) NULL DEFAULT NULL COLLATE 'latin1_bin',
    `group_id` INT(11) NULL DEFAULT NULL,
    `user_id` INT(11) NULL DEFAULT NULL,
    `modified_user` VARCHAR(30) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
STORAGE DISK TABLESPACE hhmefep_tbs ENGINE = ndbcluster;
我对上述DDL有一个疑问

当我只指定“ENGINE=ndbcluster;”而不是表空间的所有长描述等时,表将被创建并显示在2个mysql集群节点中(这意味着已复制)

那么在这种情况下会发生什么

1) 整个表都存储在内存中了吗

2) 是否必须在DDL中指定存储磁盘


伙计们,请帮忙。

如果你把
旧值
新值
的长度减少到
3000
,这有帮助吗?是的,它同样适用于
旧值
新值
3500
。目前这是一个很好的解决办法。提到
任何一行的最大允许大小是14000字节(从MySQL集群NDB 7.0开始)
我使用的是NDB集群7.3.5。有什么问题吗@GáborBakos,你能帮我一下吗?对不起,我只是怀疑你使用的是旧版本的NDB集群,但你似乎确信你没有。可能你不小心切换到了某种兼容模式?(是否有升级?或者这是新安装?)这是mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz的新安装。有没有办法检查集群是否在兼容模式下运行?对不起,我不是mysql集群的专家。您是否已开始使用
ndbmtd
()命令?还是使用
ndbd
?对于7.0及以上版本,似乎应该使用前者,运行后者可能会导致某些兼容模式。(我想您可以使用
top
ps aux
进行检查)