Discuz论坛会员导入到ucenter,针对备份论坛但是没有备份ucenter导致会员丢失的解决方法
声明:此方法已经在本站验证可行。我们的DZ版本是: Discuz! X3.4 R20230520 UTF8 , UCenten为:UCenter 1.7.0 Release 20231001
问题描述:经过几次程序升级后,ucenter数据丢失,以前的备份太早,导致uc里会员丢失好几千人,论坛后台会员信息存在,空间商无备份。
办法:
因为uc明显比论坛少了一批用户,所以必须把这些用户添加进来。
1、添加的时候需要保持论坛后台用户和uc后台用户的UID是一致的
(不要以为默认的就是一致的,由于删除过用户什么的,往往导致两者是不一致的)
前后不一致的话,会导致数据库SQL执行时一直出错,最后我只能再添加了语句 INSERT IGNORE,只要前后不一致,就忽略。
2、密码(password)这一项是没有办法添加的,第一我不知道用户的密码是什么,第二UC会将密码MD5加密。所以密码索性就设置为空,即不导入密码。
所以需要导入的只需UID、用户名(username)、邮箱(email)三项就可以了(其他信息可以让会员将来重置)
代码如下:
- INSERT IGNORE INTO `你的数据库名`.`uc_members` (
- `uid`,
- `username`,
- `email`
- )
- SELECT `uid`, `username`, `email`
- FROM `你的数据库名`.`pre_common_member`
- WHERE uid > 3(把3改为需要添加的UID起始编号地址,然后删除此括号) AND uid < 81524 (同理,这是终止UID号)
- AND uid NOT IN (SELECT uid FROM uc_members);
复制代码
意思就是:把论坛会员表 `pre_common_member 倒入uc的会员表 uc_members 里。
注意:你的数据库名、论坛会员表pre_common_member 和UC会员表的表格uc_members,必须换回自己的。
进入网站的PHPmyadmin后台,进入Mysql管理,使用“SQL查询”,贴上以上代码(记得要替换自己的信息),执行。
这样,就完成了论坛数据表到ucenter数据的导入了。 PS:如果有人尝试的话,请做好数据表备份!
后续工作:选取这些会员,发送站点通知。通知选用Email发送,内容当然是提醒会员重置密码。
|