一直有一个数据库没有同步的,非常的奇怪。

1 重新做一次同步,其它数据库都同步正常,唯独此数据库不同步
2 在phpmyadmin上操作,是可以正常同步到slave

由此可以大概判断是程序上可能有点问题了,可能是使用上的问题。

程序是uchome1.5版本的,经过检查,是数据库操作是没有选择相应的数据库:

文件:uc_client/model/base.php

/**
* 实例化数据库类
*
*/
function init_db() {
  require_once UC_ROOT.'lib/db.class.php';
  $this->db = new db();
  $this->db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, '', UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);
}


上面居然强制传了空的数据库名称,所以导致程序没有操作选择数据库:
文件:uc_client/lib/db.class.php

function connect($dbhost, $dbuser, $dbpw, $dbname = '', $dbcharset = '', $pconnect = 0, $tablepre='', $time = 0) {
  //省略部分代码
  if($dbname) {
    mysql_select_db($dbname, $this->link);
  }

}


没有dbname,所以没有进行mysql_select_db操作导致master没有记录,从而没有参与同步到slave。
小修改即可:

$this->db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);


这样就修复了程序的错误,重新处理同步即可。


原创内容如转载请注明:来自 阿权的书房
收藏本文到网摘
Tags: ,
发表评论
AD
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML 打开UBB 打开表情 隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

 

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐