首页 > 数据库 > mysql教程 > Laravel 迁移错误:如何修复'指定密钥太长”问题?

Laravel 迁移错误:如何修复'指定密钥太长”问题?

Barbara Streisand
发布: 2024-12-16 04:16:13
原创
875 人浏览过

Laravel Migration Error: How to Fix the

Laravel 迁移错误:解决“指定密钥太长”问题

尝试使用 Laravel 5.4 的 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 table users add unique users_email_unique(email))
登录后复制

原因:

当索引键的长度超过数据库引擎允许的最大长度时,会发生错误。默认情况下,MySQL 及其变体的最大索引键长度为 767 字节。

解决方案:

方法一:更新应用服务提供商

按照 Laravel 官方文档中的建议,将以下代码添加到您的app/Providers/AppServiceProvider.php 文件:

use Illuminate\Support\Facades\Schema;

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

这会将所有迁移的默认字符串长度增加到 191 个字符,这在允许的限制内。

方法 2:启用 InnoDB Large 前缀

或者,用户可以启用 innodb_large_prefix他们的 MySQL 数据库的选项。有关如何正确启用此选项的说明,请参阅数据库的文档。该解决方案允许更长的索引键,使其更适合更大的数据集。

以上是Laravel 迁移错误:如何修复'指定密钥太长”问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板