MySQL主从同步:手动操作指南(mysql主从手动同步)

MySQL主从同步,原本以及建议使用基于脚本的主从复制来实现服务器间数据同步,但在某些场景下,你也可以使用mysql 命令或自定义脚本来手动实现主从同步。

在主数据库上,首先记录一下当前binlog文件的名称和位置,例如

`shell

MYSQL> SHOW MASTER STATUS;

+——————+———-+————–+——————+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+——————+———-+————–+——————+

| mysql-bin.000010 | 107374 | | |

+——————+———-+————–+——————+

1 row in set (0.00 sec)

`

然后,在从数据库上配置主从连接:

`shell

CHANGE MASTER TO MASTER_HOST=”,

MASTER_USER=’repluser’,

MASTER_PASSWORD=’replpass’,

MASTER_LOG_FILE=’mysql-bin.000010′,

MASTER_LOG_POS=107374;

`

其中MASTER_IP_ADDRESS表示主数据库的IP地址,MASTER_USER和MASTER_PASSWORD表示从数据库连接主库时使用的用户名和密码。MASTER_LOG_FILE和MASTER_LOG_POS用于指明更新内容从哪个位置开始,用上文的例子,从binlog的mysql-bin.000010的107374的位置开始。

最后,执行START SLAVE命令,开启同步功能,此时从数据库应该会马上开始与主数据库轮询binlog文件,从而实现数据的同步更新:

`shell

MYSQL>START SLAVE;

`

对于上述的操作,最好还是检查下,是否成功完成了完整的数据同步更新:

`shell

MYSQL> SHOW SLAVE STATUS \G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host:

Master_User: repluser

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000010

Read_Master_Log_Pos: 107374

Relay_Log_File: mysqld-relay-bin.000001

Relay_Log_Pos: 320

Relay_Master_Log_File: mysql-bin.000010

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 107374

Relay_Log_Space: 631

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:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

1 row in set (0.00 sec)

`

从上述输出可以看到,`Slave_IO_Running`和`Slave_SQL_Running`字段均显示为Yes,表示同步过程已正常完成,`Seconds_Behind_Master`字段显示为0,表示主从间的延迟为0,说明主从数据已完全同步。

最后,需要注意的是,MySQL的binlog文件会随时的变化,所以执行手动同步的操作时,一定要记得及时更新binlog文件信息,以便可以正确的进行同步更新操作。


数据运维技术 » MySQL主从同步:手动操作指南(mysql主从手动同步)