Joomla 解决在恢复的时候提示 Specified key was too long 原

redmaomail 2024-07-25 10:33 阅读数 82 #Joomla

红帽云邮外贸主机

今天在将一个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来创建表。如图:

 


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机