Laravel 迁移错误:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 767 字节

时间:2023-05-01
本文介绍了Laravel 迁移错误:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 767 字节的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

使用 php artisan make:auth

在 Laravel 5.4 上的迁移错误<块引用>

[Illuminate\Database\QueryException] SQLSTATE[42000]:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 767 字节(SQL:alter table users add unique users_email_unique(email))

[PDOException] SQLSTATE[42000]: 语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 767 字节

解决方案

根据 官方 Laravel 7.x 文档,你可以很容易地解决这个问题.

更新您的 /app/Providers/AppServiceProvider.php 以包含:

使用 Illuminate\Support\Facades\Schema;/*** 引导任何应用程序服务.** @return 无效*/公共函数引导(){架构::默认字符串长度(191);}

<块引用>

或者,您可以为您的数据库启用 innodb_large_prefix 选项.有关如何正确启用此选项的说明,请参阅您的数据库文档.

Migration error on Laravel 5.4 with php artisan make:auth

[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter tabl e 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

解决方案

According to the official Laravel 7.x documentation, you can solve this quite easily.

Update your /app/Providers/AppServiceProvider.php to contain:

use Illuminate\Support\Facades\Schema;

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    Schema::defaultStringLength(191);
}

Alternatively, you may enable the innodb_large_prefix option for your database. Refer to your database's documentation for instructions on how to properly enable this option.

这篇关于Laravel 迁移错误:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 767 字节的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

上一篇:my.cnf 文件在 macOS 上的位置 下一篇:在 MySQL 中,SELECT DISTINCT 或 GROUP BY 哪个更快?

相关文章