刚入手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()
{
//
}
}