返回列表 发布新帖

建立数据表 pre_common_payment_order ... 失败

216 9
发表于 2025-2-17 14:53:00 | 查看全部 阅读模式
全新安装X3.5 220828每日构建版本提示:
建立数据表 pre_common_payment_order ... 失败
MySQL 里面创建表,MySQL返回
#1071 - Specified key was too long; max key length is 1000 bytes


1 贡献最佳答案

        install/data/install.sql
找到
  1. `type` varchar(255)  NOT NULL,
复制代码
改为
  1. `type` varchar(190)  NOT NULL,
复制代码
      

    d1.jpg 1314学习网发表于2022-8-30 23:58:33
  • 详细答案 >

评论9

淤芯咬Lv.3 发表于 2025-2-17 14:53:09 | 查看全部
问下 你安装的数据库是 gbk 还是 utf8格式的?
这个提示 是索引字段长度太长,超过了1000bytes
回复

使用道具 举报

阎清雅Lv.2 发表于 2025-2-17 14:53:46 | 查看全部
utf8mb4 ci 按照X3.5的环境需求配置的
回复

使用道具 举报

搭仑扯Lv.1 发表于 2025-2-17 14:53:53 | 查看全部
mysql什么版本
回复

使用道具 举报

淤芯咬Lv.3 发表于 2025-2-17 14:53:58 | 查看全部
utf8mb4的数据表索引最大只支持250,而这个表里的其中type的索引为255,超出了最大值(当数据库为UTF8时则不影响)
回复

使用道具 举报

宿和怡Lv.4 发表于 2025-2-17 14:54:44 | 查看全部
如果您正在使用utf8mb4,并且varchar列上的唯一索引的长度超过191个字符,则需要打开innodb_large_prefix以允许索引中的更大列,因为utf8mb4需要比utf8或latin1更多的存储空间。将以下内容添加到my.cnf文件中。
  1. [mysqld]innodb_file_format=barracudainnodb_file_per_table=1innodb_large_prefix=1init_connect='SET collation_connection = utf8mb4_unicode_ci'init_connect='SET NAMES utf8mb4'character-set-server=utf8mb4collation-server=utf8mb4_unicode_ci
复制代码
回复

使用道具 举报

淤芯咬Lv.3 发表于 2025-2-17 14:54:51 | 查看全部
my.cnf
  1. innodb_large_prefix=on
复制代码
作用:启用innodb_large_prefix选项,将约束项扩展至3072byte;

试试
回复

使用道具 举报

成娅旃Lv.4 发表于 2025-2-17 14:55:10 | 查看全部
Windows 下的MySQL把填写到 my.ini 文件后试了下,还是如此。
回复

使用道具 举报

宿和怡Lv.4 发表于 2025-2-17 14:55:16 | 查看全部
Windows 下的MySQL把填写到 my.ini 文件后试了下,还是如此。
回复

使用道具 举报

郁和静Lv.4 发表于 2025-2-17 14:55:29 | 查看全部
MySQL 5.7.39
回复

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

5857225@qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Powered by Discuz! X5.0 Licensed 2022-2025 吾7分享 版权所有 All Rights Reserved. |网站地图|湘公网安备43112302000109号 ICP备案:湘ICP备19002042号-3
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表