因现在升级做得少了,感觉有点陌生,故做记录。
原dz6.1程序为TC-BIG5版本,但UC数据表为lant1,dz数据表为BIG5.
原服务器为centos7,用的是BT的lnmp套件,运行一会就超时了,故把数据下载到本地win7主机上升级,本地同样安装bt,php选择5.6版本,mysql选择5.7版本,调整本地环境性能,IIS中的php超时参数调大,php.ini中的参数调大,my.ini中的超时参数调大。
1、首先把dz6.1升级转换至x2.0,再升到3.2,再升3.4,至此可以开始3.5升级了。
2、先升级uc,报错,数据表编码非法,进phpmyadmin修改编码,如:ALTER TABLE pre_ucenter_admins CHARACTER SET big5 COLLATE big5_chinese_ci;把所有的uc表执行一下。
3、因原数据为TC-BI5版本,很多中文用户名在升级后要转成utf8mb4就变成乱码了,乱码重名就会报错,先把UC和DZX会员表转换为uft8mb4后会重名的用户名查询出来,然后删除掉。(如果只是升级中的改名也会导致会员无法再登录和使用,不如直接删除)。
执行:
多次执行后删除,直至没有列出重名数据。
执行
多次执行后删除,直至没有列出重名数据。
4、查询下DZX会员是否在UC中都存在,删除不存在于UC中的DZX会员(此步在升级中非必要)
DELETE FROM `pre_common_member` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_action_log` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_count` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_field_forum` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_field_home` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_profile` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_status` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
把UC会员更新到DZX中:
5、因会员数据表较大,为了节省时间,把uc升级程序中的通知次数由3改为1以节省通知失败而耗用时间(update_ucenter_adult.php文件大概在746行,既然UC通信是正常的,有一次失败,后面的基本也都是失败了,如UC中有会员,而DZX中没有,就会通知失败,即使在升级后在UC里手动通知能显示成功也是种假象)
6、接下来就可以运行update_ucenter_adult.php升级UC了。因有前面删除不能识别的会员数据,故升级很顺利。
7、使用update_adult.php升级dzx3.4。
8、升级后进后台调试正常,然后使用命令导出数据库:
9、恢复本地上传的dzx3.5程序,修改3个数据库配置文件,进uc调试通信,再进后台更新缓存即可。
原dz6.1程序为TC-BIG5版本,但UC数据表为lant1,dz数据表为BIG5.
原服务器为centos7,用的是BT的lnmp套件,运行一会就超时了,故把数据下载到本地win7主机上升级,本地同样安装bt,php选择5.6版本,mysql选择5.7版本,调整本地环境性能,IIS中的php超时参数调大,php.ini中的参数调大,my.ini中的超时参数调大。
1、首先把dz6.1升级转换至x2.0,再升到3.2,再升3.4,至此可以开始3.5升级了。
2、先升级uc,报错,数据表编码非法,进phpmyadmin修改编码,如:ALTER TABLE pre_ucenter_admins CHARACTER SET big5 COLLATE big5_chinese_ci;把所有的uc表执行一下。
3、因原数据为TC-BI5版本,很多中文用户名在升级后要转成utf8mb4就变成乱码了,乱码重名就会报错,先把UC和DZX会员表转换为uft8mb4后会重名的用户名查询出来,然后删除掉。(如果只是升级中的改名也会导致会员无法再登录和使用,不如直接删除)。
执行:
select uid from pre_ucenter_members where username in (select username from pre_ucenter_members group by convert(username using utf8mb4) collate utf8mb4_unicode_ci having count(1) > 1);
多次执行后删除,直至没有列出重名数据。
执行
select uid from pre_common_member where username in (select username from pre_common_member group by convert(username using utf8mb4) collate utf8mb4_unicode_ci having count(1) > 1);
多次执行后删除,直至没有列出重名数据。
4、查询下DZX会员是否在UC中都存在,删除不存在于UC中的DZX会员(此步在升级中非必要)
DELETE FROM `pre_common_member` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_action_log` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_count` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_field_forum` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_field_home` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_profile` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
DELETE FROM `pre_common_member_status` WHERE uid NOT IN(SELECT uid FROM `pre_ucenter_members`);
把UC会员更新到DZX中:
REPLACE INTO .`pre_common_member` (`uid`,`username`,`password`,`email`,`regdate`) SELECT `uid`,`username`,`password`,`email`,`regdate` FROM .`pre_ucenter_members` ;
5、因会员数据表较大,为了节省时间,把uc升级程序中的通知次数由3改为1以节省通知失败而耗用时间(update_ucenter_adult.php文件大概在746行,既然UC通信是正常的,有一次失败,后面的基本也都是失败了,如UC中有会员,而DZX中没有,就会通知失败,即使在升级后在UC里手动通知能显示成功也是种假象)
6、接下来就可以运行update_ucenter_adult.php升级UC了。因有前面删除不能识别的会员数据,故升级很顺利。
7、使用update_adult.php升级dzx3.4。
8、升级后进后台调试正常,然后使用命令导出数据库:
D:\BtSoft\mysql\MySQL5.7\bin\mysqldump -u root -p123654 -c --default-character-set=utf8mb4 ppp > G:\backup\database\ppp35.sql
,打包后上传到服务器再解压出放入root目录,使用命令恢复数据库:/www/server/mysql/bin/mysql -hlocalhost -uroot -p[mysql password] dzx35 --default-character-set=utf8mb4 < /root/ppp35.sql
9、恢复本地上传的dzx3.5程序,修改3个数据库配置文件,进uc调试通信,再进后台更新缓存即可。
discuzx3.5下备份mysql
形式入库单的打印
2024/12/05 14:38 | by


