DiscuzX3.4升级到DiscuzX3.5帖子无法回复,报错 (1062) Duplicate entry '***-*' for key 'PRIMARY'。是了很多方法无法解决,官方给了解决办法,试了一下,没问题。 先检查站点配置文件config/config_global.php 里面数据库CONFIG DB部分是否存在一行为$_config['db']['common']['engine'] = 'innodb';,若不存在,请加入一行内容为: $_config['db']['common']['engine'] = 'innodb'; 问题解决。 还有其他的问题官方也给出了对应的解决方案:https://www.dismall.com/thread-14718-1-1.html Q001:GBK编码升级后用户反馈无法登录? A001:您升级前为GBK或BIG5编码,由于X3.5适配的UCenter 1.7.0 更新了数据库编码,为了防止本地化编码版本内以本地化编码的安全提问内的非 ASCII 文字导致用户登录受阻,因此如您站点为本地化编码则将为您清空安全提问,请将此情况如实告知用户,并要求用户在登录时请不要输入安全提问。(如您希望自行编写兼容代码,请自行在后续流程选择不清空用户的安全提问。) Q002:升级UCenter 1.7.0报错(Warning: fopen(../data/logs/X3.5_upgrade_ucenter.php): failed to open stream: No such file or directory in uc_server/update_ucenter_adult.phpon line990) A002:需要给UC目录(通常为/uc_server/)的升级日志目录(/data/logs/)赋予写权限。 Q003:升级完毕后还一直提示“升级数据”(https://www.dismall.com/thread-14698-1-1.html) A003:升级关闭站点的提示语吧?升级后记得重新打开站点。 Q004:升级Ucenter 7.0时显示数据库members表里缺少email这个字段 A004:标准Ucenter必定存在email字段的,此提示一般是以前某些修改导致email字段不存在或未被设置为索引,进入数据表(使用PhpMyAdmin)将pre_ucenter_members表的email字段设置为索引后再升级。 Q005:升级后网站变的非常缓慢(MySQL5.5) A005:当 MySQL < 5.7 或 MariaDB < 10.2 时, InnoDB 性能下降较为严重,因此在生产系统上运行的站点应升级版本至 MySQL >= 5.7 或 MariaDB >= 10.2 以避免此问题。 Q006:升级后用户IP都变成一样的了(开启了CDN) A006:Discuz!X3.5使用CDN时,获取用户真实IP(https://www.dismall.com/thread-14651-1-1.html) Q007:升级过程中提示Specified key was too long; max key length is 767 bytes A007:这是由于X3.5将升级数据库为InnoDb引擎,索引字段长度和Myisam不同,需要看报错中的具体表,进行索引字段长度变更,一般255的,建议变更为190 Q008:升级过程中提示(1061) Duplicate key name 'gpmid'ALTER TABLE common_member_grouppm ADD INDEX gpmid(gpmid); A008:应该是升级出错后又直接再次执行升级文件导致的,升级出错后建议回滚数据后再重新操作。同时,针对该问题,回滚数据后可以进入“pre_common_member_grouppm”数据表检查索引gpmid是否存在,如存在,可以先予以删除再操作升级 Q009:升级过程中提示(1062) Duplicate entry '***' for key 'username'ALTER TABLE common_member CONVERT TO CHARACTER SET utf8mb4COLLATE utf8mb4_unicode_ci;(common_member也可能是common_member_archive) A009:首先,这一般是UC升级1.7.0后UC里应用通信失败导致改名通知未被全部执行就进行了X程序升级引起的,解决方法有多种。
Q010:升级后有的帖子无法回复,会报错 (1062) Duplicate entry '***-*' for key 'PRIMARY' A010:先检查站点配置文件config/config_global.php 里面数据库CONFIG DB部分是否存在一行为$_config['db']['common']['engine'] = 'innodb';,若不存在,请加入一行内容为。若存在,可能升级失败,建议回滚数据重新升级 |