[报错:字符太长] SQLSTATE [42000]: Syntax error or access violation: 1071 Specified key was t oo long;

情景:执行php artisan migrate 报错

[报错:字符太长]SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t oo long;

Laravel utf8mb4默认使用字符集,其中包括支持在数据库中存储“emojis”。如果您运行的是早于5.7.7版本的MySQL版本或早于10.2.2版本的MariaDB,您可能需要手动配置迁移生成的默认字符串长度,以便MySQL为它们创建索引。您可以通过调用以下方法中的方法来配置:Schema::defaultStringLengthAppServiceProvider

use Illuminate\Support\Facades\Schema;

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

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

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!