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

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.3k
5 个回答

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

clipboard.png

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

哥们,你是没改database配置文件吧,图片描述

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题