laravel-admin的demo踩坑

git库:https://github.com/z-song/demo.laravel-admin.org

下载代码以后,在阿里云RDS 导入数据库文件,出现报错

错误信息:Index column size too large. The maximum column size is 767 bytes.

5.6及以上高版本MySQL innodb引擎创建表或者添加索引的时候 报Index column size too large. The maximum column size is 767 bytes

低版本可能是正常的 

原因主要是高版本的数据库 为了性能 很多东西做了限制 不合理的字段长度 不合理的查询方式 都会干掉

如果改配置的话 配置改了之后 字符集等也需要设置

而且对innodb性能 应该有所损耗 

可以把作为索引的那个column 改小一点 就可以了

确实需要大字段索引可以参考:https://help.aliyun.com/knowledge_detail/41707.html
--------------------- 

步骤1:

Step 1. RDS 控制台  参数设置,调整参数 innodb_large_prefix 为 ON

将 Innodb_large_prefix 修改为 on 后,对于 Dynamic 和 Compressed 格式的InnoDB 引擎表,其最大的索引字段长度支持到 3072 字节。

步骤2:就是在报错的数据表增加信息

ROW_FORMAT=DYNAMI

如下:

/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `users_email_unique` (`email`)
)ROW_FORMAT=DYNAMIC ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值