在进行laravel操作地,经常会出现laravel自动创建数据库时出现如下错误:
[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`))
来个图片看看出错的效果。
出现这个问题,原因是在创建数据库时,正常情况下,laravel数据库使用的编码集是”utf8mb4_unicode_ci”,而mysql较低版本对此支持不是很好,所以造成了这样的问题。那我们如何解决呢?修改一下laravel的ServiceProvider,其操作方法如下:
# 编辑AppServiceProvider.php文件 vi app/Providers/AppServiceProvider.php
在命名空间下加入如入内容:
use Illuminate\Support\Facades\Schema;
在boot()函数内加入如下内容:
Schema::defaultStringLength(191);
具体的修改内容如下图所示:
修改完成后,即可正常了。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。