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 */;

 

你可能感兴趣的:(laravel)