Laravel 5.4:指定键过长错误
发布日期:作者: Eric L. Barnes
Laravel 5.4 对默认数据库字符集进行了更改,现在为 utf8mb4
,其中包含对存储表情符号的支持。这仅影响新应用程序,只要您运行的是 MySQL v5.7.7 及更高版本,则无需执行任何操作。
对于那些运行 MariaDB 或旧版本 MySQL 的用户,您在尝试运行迁移时可能会遇到此错误
[Illuminate\Database\QueryException] SQLSTATE[42000]: 语法错误或访问冲突:1071 指定键过长;最大键长为 767 字节(SQL:alter table
users
add uniqueusers_email_unique
([PDOException] SQLSTATE[42000]: 语法错误或访问冲突:1071 指定键过长;最大键长为 767 字节
如迁移 指南 中所述,要解决此问题,您只需编辑 AppServiceProvider.php
文件,并在 boot
方法中设置默认字符串长度
use Illuminate\Support\Facades\Schema; public function boot(){ Schema::defaultStringLength(191);}
之后,一切应该正常工作。如果您喜欢这篇文章,请务必加入 每周 Laravel 新闻邮件,永不错过新版本、框架提示和新教程。