欢迎来到代码驿站!

PHP代码

当前位置:首页 > 软件编程 > PHP代码

解决在laravel中auth建立时候遇到的问题

时间:2020-12-23 12:17:55|栏目:PHP代码|点击:

当你使用auth做用户登录注册的时候,会很方便,但是你在做数据库迁移的时候可能会遇到一个问题

$ php artisan migrate
Migration table created successfully.



 [Illuminate\Database\QueryException]
 SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
 oo long; max key length is 767 bytes (SQL: alter table `users` add unique `
 users_email_unique`(`email`))

 [PDOException]
 SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
 oo long; max key length is 767 bytes

不要慌,这里说的是你的数据库迁移完成了,蛋疼的是这里有一个报错,会使你在接下来项目中后面的迁移操作继续报错。

 [Illuminate\Database\QueryException]
 SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' alre
 ady exists (SQL: create table `users` (`id` int unsigned not null auto_incr
 ement primary key, `name` varchar(191) not null, `email` varchar(191) not n
 ull, `password` varchar(191) not null, `remember_token` varchar(100) null,
 `created_at` timestamp null, `updated_at` timestamp null) default character
 set utf8mb4 collate utf8mb4_unicode_ci)

 [PDOException]
 SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' alre
 ady exists

解决方案如下:

索引长度 & MySQL / MariaDB#

Laravel 默认使用 utf8mb4 字符,包括支持在数据库存储「表情」。如果你正在运行的 MySQL release 版本低于5.7.7 或 MariaDB release 版本低于10.2.2 ,为了MySQL为它们创建索引,你可能需要手动配置迁移生成的默认字符串长度,你可以通过调用

项目/app/Providers/AppServiceProvider.php 中的 Schema::defaultStringLength 方法来配置它:

use Illuminate\Support\Facades\Schema;
 
/**
 * 引导任何应用程序服务。
 *
 * @return void
 */
public function boot()
{
 Schema::defaultStringLength(191);
}

或者你可以为数据库开启 innodb_large_prefix 选项,有关如何正确开启此选项的说明请查阅数据库文档。

上一篇:ThinkPHP5.1框架数据库链接和增删改查操作示例

栏    目:PHP代码

下一篇:值得分享的php+ajax实时聊天室

本文标题:解决在laravel中auth建立时候遇到的问题

本文地址:http://www.codeinn.net/misctech/35778.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有