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

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

@李山河
附言 1  ·  4年前

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

你看我吊吗啊
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
你看我吊吗啊
最佳答案

弄好了

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年前

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