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来创建表。如图:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。