因现在升级做得少了,感觉有点陌生,故做记录。
      原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/05/09 21:38 | by admin ]
    discuzx3.5的mysql采用了innodb数据引擎,数据库较大时,通过后台备份有些不方便。而使用主机时,也不能直接使用拷贝数据库的方式进行备份或迁移了。
    主机采用了宝塔环境,使用它自带的mysql数据库备份,到新主机上恢复时发现只恢复了一小部分,故不使用bt自带的备份,重新添加一个mysqldump脚本进行备份(这里主要是指定字符集为utf8mb4,保留最近3天的备份,备份目录还是放在bt默认的备份目录内)。
操作如下:
点计划任务,添加任务:任务名称:备份数据库,代码:

#!/bin/bash
# This script will run at 01:00 everyday
rm -Rf /www/backup/database/mysql/dbname/dbname.$(date +%Y%m%d -d '2 days ago').tar.gz
/www/server/mysql/bin/mysqldump -u root -p[mysql root的密码] -c --default-character-set=utf8mb4 dbname | gzip> /www/backup/database/mysql/dbname/dbname.$(date -d "today" +"%Y%m%d").tar.gz


恢复时的命令方式为:

gunzip < dbname.tar.gz | mysql -hlocalhost -uroot -p[mysql root的密码]  dbname --default-character-set=utf8mb4
iis7 php7.0 启用了zend opcache,系统日志报错:无法找到来自源 Zend OPcache 的事件 ID 487 的描述。本地计算机上未安装引发此事件的组件,或者安装已损坏。可以安装或修复本地计算机上的组件。
opcache.mmap_base string 参数说明:
在 Windows 平台上共享内存段的基地址。 所有的 PHP 进程都将共享内存映射到同样的地址空间。 使用此配置指令避免“无法重新附加到基地址”的错误。

解决方法:配置上 opcache.mmap_base=0x20000000

官方解说页:
https://www.php.net/manual/zh/opcache.configuration.php
Tags: ,
这两天,好多使用金蝶财务软件的朋友会发现在电脑启动后跳出用户账户控制:为了对电脑进行保护已阻止此应用。
如图:

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

点击在新窗口中浏览此图片

解决方法:
1、修改注册表:
把以下内容存入记事本,保存为.bat或.cmd扩展名,右键以管理员运行,导入注册表,再点立即重启电脑 。


Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"FilterAdministratorToken"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLUA"=dword:00000000


2、如提示无法打开,找不到mmc,需安装更新相关程序。
以下内容同样存入记事本,保存为.bat或.cmd扩展名,右键以管理员运行。成功后,再双击上面的注册表文件导入。

@echo off
pushd "%~dp0"
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"
pause


也可以直接下载附件使用。

分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]