2025年mysql导入sql文件过大自动断开(mysql导入sql文件报错的原因)

mysql导入sql文件过大自动断开(mysql导入sql文件报错的原因)CREATE TABLE rol users 2 roleid bigint unsigned NOT NULL name varchar 255 DEFAULT NOT NULL type integer DEFAULT 0 NOT NULL readonly integer DEFAULT 0 NOT NULL



CREATE TABLE `rol_users_2` (

`roleid` bigint unsigned NOT NULL,

`name` varchar(255) DEFAULT '' NOT NULL,

`type` integer DEFAULT '0' NOT NULL,

`readonly` integer DEFAULT '0' NOT NULL,

PRIMARY KEY (roleid)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

CREATE UNIQUE INDEX `role_1` ON `rol_users_2` (`name`);

在创建role_1 索引的时候,报错SQL 错误 [1709] [HY000]: (conn=6991) Index column size too large. The maximum column size is 767 bytes.

如何解决呢,只要建表的时候,添加关键词就行了row_format=DYNAMIC;

CREATE TABLE `rol_users` (

`roleid` bigint unsigned NOT NULL,

`name` varchar(255) DEFAULT '' NOT NULL,

`type` integer DEFAULT '0' NOT NULL,

`readonly` integer DEFAULT '0' NOT NULL,

PRIMARY KEY (roleid)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 row_format=DYNAMIC;

2. 如果建表语句继续报错,添加mysql全局权限

set @@global.innodb_file_format = Barracuda

set @@global.innodb_file_per_table = on

set @@global.innodb_default_row_format = dynamic

set @@global.innodb_large_prefix = 1

set @@global.innodb_file_format_max = Barracuda

或者修改配置文件mariadb

/etc/mysql/mariadb.conf.d/xxx.server.cnf

[mariadb]
innodb_file_format = Barracuda
innodb_file_per_table = on
innodb_default_row_format = dynamic
innodb_large_prefix = 1
innodb_file_format_max = Barracuda




今天的文章 2025年mysql导入sql文件过大自动断开(mysql导入sql文件报错的原因)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-11-08 13:46
下一篇 2025-07-06 22:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/16200.html