我是Laravel的新手,我使用的是" Laravel version 9 ";(最新),我运行以下命令但是给我以下错误
Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes
我有4个文件在"database/migrations"然后我运行"php artisan server "命令,但只有"两个表";插入数据库(用户(空)和迁移)后,如何添加其他表?我尝试了以下代码在"/app/Providers/AppServiceProvider.php"但仍然得到相同的错误,我该如何解决这个问题?
public function boot()
{
Schema::defaultStringLength(191);
}
在您的文件config/database.php
中,找到关键字mysql
并添加行
'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
应该看起来像这样:
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_AUTO_CREATE_USER',
'NO_ENGINE_SUBSTITUTION'
],
'engine' => 'InnoDB ROW_FORMAT=DYNAMIC', // this line
],