mysql的master和slave同步方案
- 同步原理
- master将改变记录到二进制日志(binary log)中
- slave将master的binary log events拷贝到它的中继日志(relay log)
- slave重做中继日志中的事件,改变自己的数据,相当于执行了master的所有操作
![]()
- 同步配置
- master配置
-
开启binlog vim /etc/my.cnf添加配置
12log_bin = mysql-binserver_id = 1 -
创建复制账号
1GRANTREPLICATION SLAVE,RELOAD,SUPERON*.*TOroot@’slave ip’ IDENTIFIEDBY'password';
-
- 拷贝数据,如果master有数据而slave没有数据 则需要先把master的数据拷dump到slave中,如果是全新的master和slave(master和slave均没有数据则不需要此步骤)
- slave配置
-
对master运行
123456SHOW MASTER STATUS;+------------------+-----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+-----------+--------------+------------------+-------------------+| mysql-bin.000001 | 686034183 | | | |+------------------+-----------+--------------+------------------+-------------------+ - 配置slave
-
开启binlog vim /etc/my.cnf添加配置
12log_bin = mysql-binserver_id = 1 -
启动slave执行sql
1CHANGE MASTERTOMASTER_HOST='master host', MASTER_USER='root', MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=686034183 ;其中的MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=686034183;为上一步在master上执行SHOW MASTER STATUS;的结果
-
运行
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657SHOW SLAVE STATUS\G;*************************** 1. row ***************************Slave_IO_State: Waitingformastertosend eventMaster_Host: 123.57.207.198Master_User: rootMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000001Read_Master_Log_Pos: 686034183Relay_Log_File: mysqld-relay-bin.000002Relay_Log_Pos: 686034113Relay_Master_Log_File: mysql-bin.000001Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Master_Log_Pos: 686034183Relay_Log_Space: 686034287Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed:NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master: 0Master_SSL_Verify_Server_Cert:NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error:Replicate_Ignore_Server_Ids:Master_Server_Id: 2Master_UUID: b4afeca0-1c33-11e5-856d-00163e002b08Master_Info_File: /var/lib/mysql/master.infoSQL_Delay: 0SQL_Remaining_Delay:NULLSlave_SQL_Running_State: Slave hasreadallrelay log; waitingforthe slave I/O threadtoupdateitMaster_Retry_Count: 86400Master_Bind:Last_IO_Error_Timestamp:Last_SQL_Error_Timestamp:Master_SSL_Crl:Master_SSL_Crlpath:Retrieved_Gtid_Set:Executed_Gtid_Set:Auto_Position: 01 rowinset(0.00 sec)其中Slave_IO_Running: Yes和Slave_SQL_Running: Yes则为正常,此时开始同步了
-
-
- master配置

浙公网安备 33010602011771号