navicat 导入 数据库文件时 报错?

提示 [Err] 1071 - Specified key was too long; max key length is 767 bytes ?
与laravel无关。。百度半天也没找到详细的操作方案。。

@李山河
附言 1  ·  4年前

mysql5.7就没事了。。可是我的服务器内存不够,不能安装5.7.。。求解决方案

你看我吊吗啊
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
你看我吊吗啊
最佳答案

弄好了

file

方案:将sql文件中的命令(255) 全部替换为 (191)

4年前 评论
╰ゝSakura 4年前
讨论数量: 2
╰ゝSakura

之前遇到过这个问题,这是你的数据库编码不一样,之前的应该不是utf-8,现在的数据库编码是utf-8,一般都是因为varchar的长度导致的问题,mysql默认情况下单个列的索引不能超过767位(不同版本可能存在差异),于是utf8字符编码下,255*3 byte 超过限制
解决:
1 使用innodb引擎;
2 启用innodb_large_prefix选项,将约束项扩展至3072byte;
3 重新创建数据库;
my.cnf配置:
default-storage-engine=INNODB
innodb_large_prefix=on

4年前 评论
╰ゝSakura (作者) 4年前
你看我吊吗啊 (楼主) 4年前
你看我吊吗啊

弄好了

file

方案:将sql文件中的命令(255) 全部替换为 (191)

4年前 评论
╰ゝSakura 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!