我有一个服务器与2个数据库,我想复制几个表从一个数据库到另一个。目的是我们使用项目中使用的同一个用户表。从同一个mysql服务器的不同数据库复制表
由于在他人的表中使用InnoDB与用户表的外键我选择了复制方式。
对于我为的my.cnf
master-user=root
server-id = 2
replicate-rewrite-db = dou->jobs
replicate-do-table = jobs.auth\_user
replicate-wild-do-table = jobs.geo\_%
replicate-do-table = jobs.user\_profile
replicate-same-server-id = 1
report-host = master-is-slave
binlog-do-db = dou
log-bin
的变化从binlog-do-db
同步表和开始从error.log中下一行之后出现:
111112 15:10:22 [Note] 'CHANGE MASTER TO executed'. Previous state master_host='localhost', master_port='3306', master_log_file='', master_log_pos='4'. New state master_host='localhost', master_port='3306', master_log_file='mysql-bin.000074', master_log_pos='106'.
111112 15:10:36 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000074' at position 106, relay log '/var/log/mysql/dell-relay-bin.000001' position: 4
111112 15:10:36 [Note] Slave I/O thread: connected to master '[email protected]:3306',replication started in log 'mysql-bin.000074' at position 106
似乎,关于该步骤的一切是好吧,show slave status
显示没有错误。
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: localhost
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000074
Read_Master_Log_Pos: 814
Relay_Log_File: dell-relay-bin.000002
Relay_Log_Pos: 959
Relay_Master_Log_File: mysql-bin.000074
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table: jobs.user\_profile,jobs.auth\_user
Replicate_Ignore_Table:
Replicate_Wild_Do_Table: jobs.geo\_%
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 814
Relay_Log_Space: 1113
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)
ERROR:
No query specified
事情是,主变更不会影响奴隶,但奴隶状态的变化。
感谢您解决这个问题的任何帮助。
_将replicate-same-server-id添加到my.cnf。 replicate-same-server-id documentation_ 感谢您的回答,我在my.cnf中有这个选项 –
抱歉,还没有检查过它。 “SHOW VARIABLES”讲述了什么?它是否设置?应用更改后是否重新启动了服务器? – mente
[replicate-rewrite-db](http://dev.mysql.com/doc/refman/5.5/en/replication-options-slave.html#option_mysqld_replicate-rewrite-db):_数据库名称转换是在--replicate- *规则已经过测试。[服务器如何评估复制过滤规则](http://dev.mysql.com/doc/refman/5.5/en/replication-rules.html):_后者的示例可能会产生意想不到的效果是同时使用--replicate-do-db和--replicate-wild-do-table,其中--replicate-wild-do-table使用的数据库名称模式与给定的名称匹配--replicate-do-db_ – mente