mysql复制失败问题

钛元素 发布于 2013/05/02 16:48
阅读 360
收藏 0
配置了两个mysql数据库复制功能,但是失败了。哎,特请教。
日志提示:
130502 16:42:19 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin1.000002' at position 10431, relay log '.\T-relay-bin.000002' position: 254
130502 16:42:19 [Note] Slave I/O thread: connected to master 'repl @localhost :3311',replication started in log 'mysql-bin1.000002' at position 26661
130502 16:42:19 [ERROR] Slave SQL: Error 'Table 'ultrax.pre_common_member_status' doesn't exist' on query. Default database: 'ultrax'. Query: 'UPDATE  pre_common_member_status SET `lastip`='127.0.0.1' , `lastvisit`='1367482995' WHERE `uid`='1'', Error_code: 1146
130502 16:42:19 [Warning] Slave: Table 'ultrax.pre_common_member_status' doesn't exist Error_code: 1146
130502 16:42:19 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin1.000002' position 10431


表不存在?存在还需要复制么?
主服务器:
3311端口


从服务器:3312端口

在从服务器上查询 show processlist \G 可以看出确实是同步了的,但是就是上述日志


help!

加载中
0
南山小樵
南山小樵

1. 确认两台就机器的时间一至

2. slave的版本至少应该和master一样,或者更高

3. 检查权限是否正确

4. 最好是在确认状态为两个yes的时候,操作master的数据库;在slave上查看状态(show slave status\G


1
逝水fox
逝水fox

主库看到的 是 binlog已经传给slave了,slave那边一般是分成两个线程,一个负责读binlog过来,一个负责执行,虽然新版本可能是多个执行线程,但是大致模式仍然是这样的。

一般主库不会管slave拿了binlog过去执行是什么情况,你现在slave停掉是因为执行出问题,问题见上面说的,你读下内容就知道了。表找不到,去slave找ultrax库pre_common_member_status的表

另外,有点冒昧的问一下,不会是在做同步之前,没有从主库把数据手动复制到从库吧...

0
钛元素
钛元素
出错后,复制Slave_SQL_Running 就是no了
0
逝水fox
逝水fox
130502 16:42:19 [ERROR] Slave SQL: Error 'Table 'ultrax.pre_common_member_status' doesn't exist' on query. Default database: 'ultrax'. Query: 'UPDATE pre_common_member_status SET `lastip`='127.0.0.1' , `lastvisit`='1367482995' WHERE `uid`='1'', Error_code: 1146
原因有说,看看是什么情况找不到这个表,slave上,如果本来就不同步这表,replicate_ignore_table或者replicate_ignore_db把他跳过
0
钛元素
钛元素
从数据库应该是同步所有表的吧?
我有三张自建的表,分别在test库、自建库1、自建库2中,但是在主数据库中插入数据,从数据库依旧没有反应
在主数据库中查询SHOW PROCESSLIST\G
可以看到Command: Binlog Dump,应该是成功了啊
0
钛元素
钛元素
我stop了slave,再start,好了一会,同步了一张两边事先建立的表,插入测试ok
一会,我在主服务器建立库,表,插入数据
发现从服务器又提示Slave_SQL_Running  no

0
钛元素
钛元素

引用来自“逝水fox”的答案

主库看到的 是 binlog已经传给slave了,slave那边一般是分成两个线程,一个负责读binlog过来,一个负责执行,虽然新版本可能是多个执行线程,但是大致模式仍然是这样的。

一般主库不会管slave拿了binlog过去执行是什么情况,你现在slave停掉是因为执行出问题,问题见上面说的,你读下内容就知道了。表找不到,去slave找ultrax库pre_common_member_status的表

另外,有点冒昧的问一下,不会是在做同步之前,没有从主库把数据手动复制到从库吧...

确实如此。不过此问题已经解决了。但是依旧出现这个问题。我再看看
逝水fox
逝水fox
可能关键还是要看slave停掉之后的show slave status的Last_Error这个的内容来对症下药,实在主从表差得太对重做主从可能更好
0
钛元素
钛元素
thankyou ! no problem!
返回顶部
顶部