为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 5.5 使用 PHP artisan migrate 的问题,已经设置了 utf8mb4,依然报错

Laravel 5.5 使用 PHP artisan migrate 的问题,已经设置了 utf8mb4,依然报错

PHP
青春有我 2019-03-16 10:40:11
php artisan migrate 报错 [Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQ L: 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 google了,说是数据库utf8mb4才行,改了,检查了主从数据库都没问题,都是utf8mb4 然后还是这个错误
查看完整描述

5 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

我觉得你应该设置一下这个试试:

https://img1.sycdn.imooc.com//5c8f5a58000190c608000440.jpg

查看完整回答
反对 回复 2019-03-18
?
智慧大石

TA贡献1946条经验 获得超3个赞

php .\artisan migrate --pretend
输出sql瞧瞧, 看报错是索引长度 问题吧.

查看完整回答
反对 回复 2019-03-18
?
喵喔喔

TA贡献1735条经验 获得超5个赞

我也遇到这个问题了, 我补充下答案.

具体修改的文件位置

./app/providers/appServiceProvider.php

搜索的相关资料

Laravel5.5问题:SQLSTATE Syntax...

索引长度&MySQL/MariaDB

查看完整回答
反对 回复 2019-03-18
?
HUX布斯

TA贡献1876条经验 获得超6个赞

哥们,你是没改database配置文件吧,https://img1.sycdn.imooc.com//5c8f5a5a0001dc8b08000328.jpg

一般来说 utf-8就已经足够了,当然utf8mb4也有一些特殊用途,例如存储特殊字符,存储的数据也要比utf-8要多,所需要的长度就越大,我经常也出现这种情况,没特殊需要我就直接改为utf-8,有需要我就utf8mb4,那就要注意字段长度了。

查看完整回答
反对 回复 2019-03-18
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

laravel 建议是使用mysql版本>5.6,否则就会报这个错误的

查看完整回答
反对 回复 2019-03-18
  • 5 回答
  • 0 关注
  • 610 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信