我是Laravel新手。我在迁移用户和密码重置表时遇到问题。
Illuminate \ Database \ QueryException:SQLSTATE [42000]:语法错误或 访问冲突:1071指定的密钥太长;最大密钥长度为 767个字节(SQL:一个lter表用户添加唯一 users_email_unique(email))
我尝试了很多解决方案,例如(AppServiceProvider,数据库排序规则更改,更改迁移文件),但是没有一个给我解决方案。
AppServiceProvider.php
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);
}
}
Database.php
'mysql' => [
'driver' => 'mysql',
'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' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
],
答案 0 :(得分:0)
在AppServiceProvider中设置defaultStringLength后,也许可以使用php artisan serve重新运行您的项目来解决您的问题。