2017-04-13 174 views
2

[Illuminate \ Database \ QueryException] SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长;最大密钥长度为767个字节(SQL:改变TABLê用户添加独特users_email_unique(电子邮件))Laravel迁移错误:语法错误或访问冲突:1071指定的键太长;最大密钥长度为767字节laravel 5.3

[PDOException] SQLSTATE [42000]:语法错误或访问冲突:1071 指定的键过长;最大密钥长度是767字节

最新错了?即时通讯使用laravel 5.3

回答

3

指的Laravel NewsLaravel's migration guide

正如迁移概述指南来解决这一切,你需要做的就是编辑AppServiceProvider.php文件和引导方法内部设置一个默认的字符串长度:

use Illuminate\Support\Facades\Schema; 

function boot() 
{ 
    Schema::defaultStringLength(191); 
} 
+0

不工作...这项工作在拉拉维尔5.4 我尝试laravel 5.3我得到同样的错误 –

0

这错误来自basically..If您尝试通过phpMyAdmin来增加列的长度的数据库,你会得到同样的错误。

0

正如迁移概述指导来解决这一切,你需要做的就是 编辑您的AppServiceProvider.php文件和引导方法内部设置一个默认 字符串长度:

use Illuminate\Support\Facades\Schema; 

public function boot(){ 
    Schema::defaultStringLength(191); 
} 

后一切都应该正常工作。

0
open create_user_tabel and then write one line inside up function. 
    Schema::defaultStringLength(191); 
e.g 

    public function up() 
    {  
     Schema::defaultStringLength(191); 

    Schema::create('users', function (Blueprint $table) { 
       $table->increments('id'); 
       $table->string('name'); 
       $table->string('email')->unique(); 
       $table->string('password'); 
       $table->rememberToken(); 
       $table->timestamps(); 
    } 

它将工作100%。

相关问题