DiscuzQ吃瓜第一个坑,MySQL 5.6 下安装的时候出现索引长度 安装出错:

 SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long;   
 max key length is 767 bytes   
 (SQL: alter table `group_permission` add primary key `group_permission_group_id_permission_primary`(`group_id`, `permission`))

那么在 MySQL 5.6 下要有没有办法安装呢? 其实是有的,如果熟悉 Laravel 的,都知道 Laravel 5.x 开始,在 MySQL 5.6 下也有这个问题,解决方式在AppServiceProvider::boot() 里面加上 Schema::defaultStringLength(191); 就可以解决问题了。

DiscuzQ 也是基于 Laravel 的,那么搞起。 结果发现,不行报错了:Call to a member function connection() on null ,看了是 DiscuzQ 没有完全使用 Laravel 的机制啊。 继续去跟安装方法,找到:app/Install/Controller/InstallController.php 文件,里面有一个函数, installDatabase 先进行数据库初始化和连接。后面才行执行数据表迁移。

那么可以在这个位置加上defaultStringLength,修改方式如下:

Fu6o5ZFfM3BElCwXLITuTHgg4D2Q.png