最新的系统使用了严格数据库字段模式,并且使用了 utf8mb4
编码,这样在低版本数据库时会出现 Specified key was too long; max key length is
的错误。
要解决这个问题可以以下几种途径:
- 更新数据库版本:在一些较老的 MySQL 或 MariaDB 版本中,索引长度限制较低。升级到新版本可能会增加索引长度限制。
- 修改系统的数据库编码:系统默认使用
utf8mb4
编码,如果数据库版本较低,可以修改为utf8
编码。参考 如何修改系统连接 MySQL 的数据库编码? - 修改系统的编码字段:使用
utf8
最长可以支持 255 个字符。如果使用utf8mb4
最长可以支持 191 个字符。$table->string('path', 200)->nullable()->comment('')->charset('utf8');