[Discuz!] Discuz x3.4用户表主表 存档表合并教程,common_member_archive’ doesn’t exist解决方案

[复制链接]
查看202 | 回复0 | 2020-7-10 00:15:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Discuz曾经有些旧版本出了一个功能:用户表优化,执行了用户优化用户表就分成了两个,一个主表,一个存档表。讲一下Discuz X3.4如何合并用户表主表跟存档表。为什么合并?因为存档表会导致一些不活跃的会员进入了存档表,再次登陆时登陆不了,或者登陆需要激活之类,注册不跳转,DZ论坛用户数量与Ucenter用户总数不一致致,总之很鸡肋的功能。还会导致更新缓存后可能出现:Discuz提示错误 (1146)Table ‘XXX.common_member_archive’ doesn’t exist
如何判断是否需要合并用户表主表存档表:
登陆DZ后台,点击用户,如果如下图,用户名出现下拉框,有存档表选项,代表曾经执行过用户表优化,需要合并。
Discuz x3.4用户表主表 存档表合并教程,common_member_archive’ doesn’t exist解决方案3627备份存档,
取消用户表定期优化功能
登陆Discuz X3.4 或者3.5后台:
进入菜单:“工具”--“计划任务”列表里的:每日用户表优化。取消可用勾选,提交。
合并存档表里面的用户到 主表
操作前,我们最好关闭站点,备份全站数据库。避免操作失误导致数据出问题。
然后我们登陆到phpMyAdmin管理工具,进入对应的数据库,
执行SQL语句, 注意默认的DZ数据表前缀是pre,如果你修改了自定义的表前缀,需要把修改成自己的。
删除存档表内重复的UID,建立唯一性
  1. ALTER IGNORE TABLE pre_common_member_archive ADD UNIQUE INDEX(`uid`)
复制代码

将存档表内的用户数据还原到 主表里面:

  1. insert into pre_common_member select * from pre_common_member_archive
复制代码

删除主表内重复的UID,建立唯一性:

  1. ALTER IGNORE TABLE pre_common_member ADD UNIQUE INDEX(`uid`)
复制代码
相关的表还包括,一共六对表。前面是主表,带_archive的是对应的存档表。
  1. pre_common_member
  2. pre_common_member_archive
复制代码

将存档表里面的用户数据一一还原到主表里面后,带_archive的存档表就可以删除呢。

  1. DROP TABLE `pre_common_member_archive` ,
  2. `pre_common_member_count_archive` ,
  3. `pre_common_member_field_forum_archive` ,
  4. `pre_common_member_field_home_archive` ,
  5. `pre_common_member_profile_archive` ,
  6. `pre_common_member_status_archive` ;
复制代码

最后一步,执行SQL语句:

  1. DELETE FROM `pre_common_setting` WHERE `skey` = 'membersplit';
复制代码
到这一步合并完成,记得更新缓存。

搬家重装更新缓存后找不到存档表
另外如果优化过用户表,搬家、重装,或者更新缓存后可能出现以下错误:
  1. Discuz提示错误 (1146)Table ‘common_member_archive’ doesn’t exist
复制代码
这是因为数据库里面找不到存档表,修复方法:
  1. DELETE FROM `pre_common_setting` WHERE `skey` = 'membersplit';
复制代码
这只是直接不管存档表,最好还是按上面完整的操作。
注意把表前缀pre修改成你自己的,如果默认pre无需修改。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

灌水成绩
406
主题
410
帖子
1574
积分
等级头衔
积分成就
  • 威望: 0
  • 贡献: 1164
  • 金钱: 0
  • 违规:
  • 在线时间:156 小时
  • 注册时间:2020-2-11
  • 最后登录:2020-8-23
个人勋章

最佳新人活跃会员热心会员突出贡献优秀版主论坛元老精贴王灌水之王荣誉管理

联系方式