laravel5.6 IlluminateDatabaseQueryException : SQLSTATE[42000]: Syntax error or access violatio(代码片

Posted 依然范儿特西

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel5.6 IlluminateDatabaseQueryException : SQLSTATE[42000]: Syntax error or access violatio(代码片相关的知识,希望对你有一定的参考价值。

在进行数据迁移时候报错: 特殊字段太长报错,

php artisan migrate

现在utf8mb4包括存储emojis支持。如果你运行mysql v5.7.7或者更高版本,则不需要做任何事情。

当你试着在一些MariaDB或者一些老版本的的MySQL上运行 migrations 命令时,你可能会碰到下面这个错误:

错误如下:

  IlluminateDatabaseQueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes

解决办法: 

我们可以在 AppServiceProvider.php 文件里的 boot 方法里设置一个默认值:

文件路径: /app/providers/AppServiceProvider.php,加上绿色部分即可

<?php

namespace AppProviders;

use IlluminateSupportServiceProvider;
use IlluminateSupportFacadesSchema;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //
        Schema::defaultStringLength(191);
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

 

以上是关于laravel5.6 IlluminateDatabaseQueryException : SQLSTATE[42000]: Syntax error or access violatio(代码片的主要内容,如果未能解决你的问题,请参考以下文章

使用 laravel5.6 自定义(动态)日志文件名

laravel5.6上传图片及显示

PHP笔记-laravel环境搭建(Laravel5.8.35版本)

Laravel5.6(包括和收益)

laravel5.6 基于redis,使用消息队列(邮件推送)

laravel5.6 laravel 接口 接管 自定义异常类