解决在laravel中auth建立时候遇到的问题
当你使用auth做用户登录注册的时候,会很方便,但是你在做数据库迁移的时候可能会遇到一个问题
$phpartisanmigrate Migrationtablecreatedsuccessfully. [Illuminate\Database\QueryException] SQLSTATE[42000]:Syntaxerrororaccessviolation:1071Specifiedkeywast oolong;maxkeylengthis767bytes(SQL:altertable`users`addunique` users_email_unique`(`email`)) [PDOException] SQLSTATE[42000]:Syntaxerrororaccessviolation:1071Specifiedkeywast oolong;maxkeylengthis767bytes
不要慌,这里说的是你的数据库迁移完成了,蛋疼的是这里有一个报错,会使你在接下来项目中后面的迁移操作继续报错。
[Illuminate\Database\QueryException] SQLSTATE[42S01]:Basetableorviewalreadyexists:1050Table'users'alre adyexists(SQL:createtable`users`(`id`intunsignednotnullauto_incr ementprimarykey,`name`varchar(191)notnull,`email`varchar(191)notn ull,`password`varchar(191)notnull,`remember_token`varchar(100)null, `created_at`timestampnull,`updated_at`timestampnull)defaultcharacter setutf8mb4collateutf8mb4_unicode_ci) [PDOException] SQLSTATE[42S01]:Basetableorviewalreadyexists:1050Table'users'alre adyexists
解决方案如下:
索引长度&MySQL/MariaDB#
Laravel默认使用utf8mb4字符,包括支持在数据库存储「表情」。如果你正在运行的MySQLrelease版本低于5.7.7或MariaDBrelease版本低于10.2.2,为了MySQL为它们创建索引,你可能需要手动配置迁移生成的默认字符串长度,你可以通过调用
项目/app/Providers/AppServiceProvider.php中的Schema::defaultStringLength方法来配置它:
useIlluminate\Support\Facades\Schema; /** *引导任何应用程序服务。 * *@returnvoid */ publicfunctionboot() { Schema::defaultStringLength(191); }
或者你可以为数据库开启innodb_large_prefix选项,有关如何正确开启此选项的说明请查阅数据库文档。
以上这篇解决在laravel中auth建立时候遇到的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。