首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL主从复制不更新

MySQL主从复制不更新
EN

Server Fault用户
提问于 2015-09-17 10:38:43
回答 2查看 14.6K关注 0票数 1

这是我第一次设置主从复制。我正在使用作为向导。

我遵循步骤,所有的工作直到最后一部分,当我需要验证复制。当我创建一个新表并将一些数据插入到主数据库中的表中时,它不会被复制到从数据库中。

下面是主人的my.cnf

代码语言:javascript
复制
server-id = 1
binlog-do-db = databasename
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
log-error = /var/lib/mysql/mysql.err
master-info-file = /var/lib/mysql/mysql-master.info
relay-log-info-file = /var/lib/mysql/mysql-relay-log.info
log-bin = /var/lib/mysql/mysql-bin

和奴隶的my.cnf

代码语言:javascript
复制
server-id = 2
master-host=10.77.88.111
master-connect-retry=60
master-user=slave_user
master-password=slave_password
replicate-do-db=databasename
replicate-ignore-table=table1
replicate-ignore-table=table2
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
log-error = /var/lib/mysql/mysql.err
master-info-file = /var/lib/mysql/mysql-master.info
relay-log-info-file = /var/lib/mysql/mysql-relay-log.info
log-bin = /var/lib/mysql/mysql-bin

下面是显示从状态。

代码语言:javascript
复制
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.77.88.111
                  Master_User: slave_user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 389591
               Relay_Log_File: mysql-relay-bin.000003
                Relay_Log_Pos: 251
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: databasename
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table: databasename.table1,databasename.table2
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 389591
              Relay_Log_Space: 120695
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)

我试过:

  • 使用slave_user ==>成功从从机访问主数据库;因此问题不在此
  • 在从机==>中重新启动mysql服务
  • 在/var/lib/mysql/mysql.err中没有显示错误
  • 使用# service iptable停止防火墙停止==>无更改

请帮帮我!真的很感激!

EN

回答 2

Server Fault用户

发布于 2015-09-18 17:08:43

没什么不对的。

这是你怎么看的

指示#1 :从线程

当您运行SHOW SLAVE STATUS\G时,它显示

代码语言:javascript
复制
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

这表明IO线程(从主服务器截取Binlog事件并将它们存储在中继日志FIFO中)和SQL线程(从中继日志读取Binlog事件,FIFO并执行SQL)并连接和运行

指示#2 :中继日志

当您运行SHOW SLAVE STATUS\G时,它显示

代码语言:javascript
复制
Relay_Log_Space: 120695

这表明IO线程已经从Master读取了120 K。在IO线程读取新事件时,此值应不断更改。

指示#3 :已执行的语句

当您运行SHOW SLAVE STATUS\G时,它显示

代码语言:javascript
复制
Read_Master_Log_Pos: 389591
Exec_Master_Log_Pos: 389591

如果这些值正在更改,IO线程将达到Read_Master_Log_Pos中的任何位置,而SQL线程执行到Exec_Master_Log_Pos中的任何位置。

警告

我看到你在奴隶上启用了二进制日志记录。您将不会看到二进制日志在奴隶上增长。为什么?您忘了将日志从更新添加到奴隶的my.cnf中。

您必须将日志从更新添加到奴隶的my.cnf并重新启动MySQL。

票数 2
EN

Server Fault用户

发布于 2015-09-17 11:35:06

这里没有什么明显的问题。

我要做的第一件事是确保在发出CREATE和INSERT命令时,您实际上是USEing数据库名。

您还可以尝试取消由binlog db、复制-do-db等所施加的限制,看看这是否有帮助。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/722991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档