laravel框架使用migrate执行php artisan migrate出现msql 1071报错

刚入手laravel框架使用migrate创建数据表之后执行php artisan migrate出现

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

出现这种情况时因为laravel5.4+使用的字符集长度问题,5.7版本以下的MSQL不支持,所以可以选择升级5.7版本的MSQL。

但是,有的人说,我就不喜欢升级怎么滴,以下有两个方法解决低版本MYSQL报错

解决方法,前提:数据库里对应的几个表要删除,如user表

第一种,找到config目录下的database.php文件

打开文件后搜索utf8mb4,然后把这个和下面utf8mb4_unicode_ci分别改成utf8,utf8_unicode_ci

第二种,打开/app/Providers/AppServiceProvider.php

在头部先引入Schema

use Schema;

在public function boot(){}里面添加一句

Schema::defaultStringLength(191);

完整代码

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

use Schema;

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()

{

        //

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容