一直有一个数据库没有同步的,非常的奇怪。
1 重新做一次同步,其它数据库都同步正常,唯独此数据库不同步
2 在phpmyadmin上操作,是可以正常同步到slave
由此可以大概判断是程序上可能有点问题了,可能是使用上的问题。
程序是uchome1.5版本的,经过检查,是数据库操作是没有选择相应的数据库:
文件:uc_client/model/base.php
上面居然强制传了空的数据库名称,所以导致程序没有操作选择数据库:
文件:uc_client/lib/db.class.php
没有dbname,所以没有进行mysql_select_db操作导致master没有记录,从而没有参与同步到slave。
小修改即可:
这样就修复了程序的错误,重新处理同步即可。
原创内容如转载请注明:来自 阿权的书房
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);
}
* 实例化数据库类
*
*/
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);
}
}
//省略部分代码
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);
这样就修复了程序的错误,重新处理同步即可。
原创内容如转载请注明:来自 阿权的书房
收藏本文到网摘