每次全新安装的 Laravel 数据库迁移都会遇到 1071 Specified key was too long 这个问题

不知道大家是不是和我一样,这次我重新做laravel的教程,每次全新安装laravel我都是用的laravel new这个命令,上一次做的时候还是大概1年以前,那时候还没有5.8,最近我弄的时候laravel new的版本已经是5.8的了,但是不管是5.7 还是 5.8,每次我migrate的时候,都会遇到

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

这个问题,我网上查了有说是mysql版本不能是低于5.3的,但是我更换了mysql也不对,所以我根据提示手动修改了,文件:2014_10_12_000000_create_users_table.php的$table->string('email')->unique();$table->string('email',128)->unique();,指定了字段长度.

每次都要这么修改吗?还是我本地的环境问题引起的??

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2

这个是版本低于 5.7.7 mysql导致的。 也可以这样 在 AppServiceProvider.php 文件里的 boot 方法里设置

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

4年前 评论

@qxedu 好的,感谢,下次我注意下mysql 的版本

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!