这是我第一次设置主从复制。 我用这个作为指导。
我遵循的步骤和所有工作,直到最后一部分,当我需要validation复制。 当我创build一个新表并将一些数据插入到master数据库中的表中时,它不会被复制到从数据库中。
下面是主人的my.cnf
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
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
以下是SHOW SLAVE STATUS
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)
我努力了:
请帮忙! 真的很感激!
没有任何错误。
这是你可以告诉的
当您运行SHOW SLAVE STATUS\G ,会显示
Slave_IO_Running: Yes Slave_SQL_Running: Yes
这显示了IO线程(从主站截获Binlog事件并在中继日志FIFO中存储它们)和SQL线程(从中继日志FIFO读取二进制日志事件并执行SQL)并连接并运行
当您运行SHOW SLAVE STATUS\G ,会显示
Relay_Log_Space: 120695
这表明IO线程已经从主机读取了120K。 IO线程正在读取新事件时,此值应该不断变化。
当您运行SHOW SLAVE STATUS\G ,会显示
Read_Master_Log_Pos: 389591 Exec_Master_Log_Pos: 389591
如果这些值正在改变,那么IO线程将到达Read_Master_Log_Pos任何位置,并且SQL线程已经执行到Exec_Master_Log_Pos任何位置。
我看到你在从机上启用了二进制日志logging。 您不会看到从机上增长的二进制日志。 为什么? 您忘记将从站更新添加到从站的my.cnf 。
您将不得不添加从站的my.cnf 日志从属更新并重新启动MySQL。
这里没有什么明显的错误。
我要做的第一件事是确保在发出CREATE TABLE和INSERT命令时,实际上是使用数据库数据库名称。
你也可以尝试删除由binlog-do-db,replicate-do-db等施加的限制,看看是否有帮助。