首頁 > 資料庫 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板