laravel 数据库迁移时报错

在laravel 5.4及以上版本,由于utf8mb4字符集导致的数据库迁移错误,特别是在MySQL 5.7.7以前或MariaDB上。错误提示为'指定的键太长...'。解决方案包括手动配置字符串长度和检查迁移文件是否存在字段重复或数据表已存在的情况。
摘要由CSDN通过智能技术生成

问题描述

[Illuminate\Database\QueryException]                                                                                          
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))   
 
[PDOException]                                                                                                   
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

(1)laravel 5.4或者更高版本 改变了默认的数据库字符集,现在utf8mb4包括存储emojis支持。如果你运行MySQL v5.7.7或者更高版本,则不需要做任何事情。(2)当你试着在一些MariaDB或者一些老版本的的MySQL上运行 migrations 命令时,你可能会碰到下面这个错误:Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes【指定的键太长了,最大键的长是767bytes,因为laravel默认字符串长度是767bytes,所

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值