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

php artisan migrate 报错
https://img.mukewang.com/5c8f5a550001db0908000199.jpg

  [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
https://img3.mukewang.com/5c8f5a560001c03305250352.jpg

然后还是这个错误

青春有我
浏览 612回答 5
5回答

蓝山帝景

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

智慧大石

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

喵喔喔

我也遇到这个问题了, 我补充下答案. 具体修改的文件位置 ./app/providers/appServiceProvider.php 搜索的相关资料 Laravel5.5问题:SQLSTATE Syntax... 索引长度&MySQL/MariaDB

HUX布斯

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

慕桂英3389331

laravel 建议是使用mysql版本>5.6,否则就会报这个错误的
打开App,查看更多内容
随时随地看视频慕课网APP