去评论
dz插件网

Discuz! System Error:mysqli object is already closed

饾暦饾枎饾枒饾枏饾枂饾枅饾枑
2024/11/23 10:54:25


前阵子硬盘出事了,在忙硬盘,现在(2024.11.22 22:00)好不容易有点空闲时间了,赶紧恢复网站。结果登录时就出现上图现象,真是让人郁闷。
想了想都是以前的配置,没有改动过,现在的目录结构和以前的都是一样的。为什么会出现这个现象呢?
先查下dz的log日志吧:发现它指向 dbi.class.php#break():0044 。但已经运行了那么长时间了,不可能是代码问题。
调试,跟进去,43行加上dd打印变量的方法,

打印出来的值,直让人郁闷:

咦?端口号3305呢?为什么不显示出来?难道只能用默认的3306端口号?我以前两个版本的mysql随便切换都可以的,为什么今天不行了呢(以前切换数据库后,并没有登录dz的动作)?
那我先统一所有mysql相关的端口号为3306看看(mysql改完要重启服务,dz也要改配置文件 config\config_global.php)。

改完端口号3306后,再次用原先的账号登录,艹,成功登录。NNDX,再来一次,把所有端口号全部改为3305(mysql改完要重启服务,dz也要改配置文件 config\config_global.php)。刷新页面,一切正常。然后再登录管理后台, 呵呵,又出现上面第一张图。至此,真相大白。

再换回3306端口号,登录:


总结:登录时会验证uc账号信息,而且只能为默认的mysql端口号3306;登录后,可以改配置文件 config\config_global.php 加上端口号3305,只是数据显示正常,依然无法登录。我了个去,你这也太不严谨了吧。