Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

mysql主从无法正常同步

[复制链接]
myjoyoo 发表于 2015-4-3 17:52:53 | 显示全部楼层 |阅读模式

这本身也许不是一个discuz的问题,但DZ没有注意到这个情况也是不太好的。

情况是这样的:
我们有一个论坛,bbs和ucenter是在一个数据库里,但有一天发现ucenter的相关表的数据没有同步到从库上。

环境:5.5.5-10.0.11-MariaDB-log,CentOS 6.5, DiscuzX 2.0。

经过一翻折腾得出以下结果:
这个问题只存在于表的存储引擎是MyISAM的情况。
不能同步,是由于主库没有记录bin日志造成的。

重现
连接到mysql服务器,不要用use database命令,而直接执行:insert `db_name`.`table_name`,这样,数据库是不会记录该条操作日志的。
另外,我们数据库配置了binlog-do-db和binlog-ignore-db,如果没有配置这个,而选择所有的数据库都记录日志,问题也许不会出现。

对于discuz的解决方法
修改代码:uc_client/model/base.php文件的init_db方法,把:
$this->db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, '', UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);
改为
$this->db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);

我看了一下,这个问题在最新的版本里还是存在的。
对于DZ为什么要这么做,可能是有原因的,要修改的朋友请注意一下。


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

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-25 18:57 , Processed in 0.026949 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表