< 返回 4.6 Joomla 解决在恢复的时候提示 Specified key was too long - 博客

今天在将一个Joomla网站使用akeeba恢复,在恢复数据的时候出现了错误,Specified key was too long; max key length is 767 bytes 初步判断是数据库引起的问题。

1,发现问题


还原Joomla网站,发现如下的问题:

Specified key was too long; max key length is 767 bytes
 SQL=CREATE TABLE `shop2_akeeba_common` (   `key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,   `value` longtext COLLATE utf8mb4_unicode_ci NOT NULL,   PRIMARY KEY (`key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

截图如下:

这是很常见的问题,大致意思是说数据库需要的字符串太长了。和现在需要还原的数据库服务器并不支持这个长的字符串。

2,解决问题


最简单的方案就是调整服务器上的mysql的版本,将服务器上的版本和你原来的网站一样就可以解决了。

其次,如果动手能力比较强的话,可以在install目录下面找到sql文件,将这个表的字段手动的调整小一些。具体说来就是将上面的255调整为64.(当然这种修改在某些情况下面会导致程序出现异常)

作为程序员来说,可以尝试修改mysql的设置,启用 innodb_large_prefix = on ,然后重启服务器。但本人亲自实验,发现问题依旧存在。

对于使用akeeba还原的用户,我们有更加方便的方案。只要在还原的设置界面,勾选强制使用UTF-8来创建表。如图:

 

博客

第1章:经验分享
第2章:专题教程
第3章:扩展推荐
第13章:扩展更新日志
  • 内容提要
  • 留言讨论 (0)
  • 视频教程
今天在将一个Joomla网站使用akeeba恢复,在恢复数据的时候出现了错误,Specified key was too long; max key length is 767 bytes 初步判断是数据库引起的问题。

评论 (0)

  • 最新在前
  • 最佳在前

内容待完善

该课程提供视频版,可以观看完整的视频教程