天天看點

mysql單向同步

又叫做主從複制,是通過二進制日志檔案完成的,注意:mysql 資料庫的版本,兩個資料庫版本要相同

系統環境:

主伺服器master  IP: 192.168.0.88

從伺服器slave  IP: 192.168.0.99

單向同步

注意要點

1、隻需要把需要同步的資料庫備份傳到從資料庫上,其它任何東西都不需要

2、在從庫上還原資料庫時,一定先要建了同名資料庫,否則還原會提示錯誤

3、在制定更新點時,一定要在同步程序還沒啟動前操作

主伺服器上配置

對my.cnf進行修改需要重新開機動資料庫設定才會生效,如果不想對指定資料庫同步進行限制,直接跳過這步

[root@kt /]# service mysqld stop

停止Mysql服務

[root@kt /]# vim /etc/my.cnf

編輯Mysql配置檔案添加下面字段,注意:這兩個字段預設沒有自己在server-id字段下面添加就可以了

binlog-do-db     = kangte  

二進制需要同步的kangte資料庫

binlog-ignore-db = mysql    

二進制不想同步的MySQL資料庫

[root@kt /]# service mysqld start

啟動主伺服器

建立遠端同步使用者

mysql> grant replication slave,replication client,reload,super on *.* to 'kt'@'192.168.0.99' identified by '123456'with grant option;

mysql> flush privileges;

更新資料庫讓使用者生效

[root@zzh /]# mysql -h 192.168.0.88 -u kt -p

在備份伺服器上測試一下建的使用者是否可以登陸

mysql> flush tables with read lock;

設定讀鎖

mysql> show master status;

檢視目前二進制日志名和偏移量值,從庫按這個點開始進行資料恢複

檢視結果如下:

+------------------+----------+--------------+------------------+

| File                 Position    Binlog_Do_DB  Binlog_Ignore_DB    |

| mysql-bin.000006       656                                     |

[root@zzh /]# mysqldump -u root -p kangte > /kangte.sql

備份指定資料庫,也可以直接用實體備份

mysql> unlock tables;

解除讀鎖

[root@zzh /]# scp /kangte.sql [email protected]:/

把備份傳到從資料庫伺服器

備份伺服器配置

注意:如果資料庫有相同的資料庫把之前的庫删除

[root@zzh /]# service mysqld stop

[root@zzh /]# vim /etc/my.cnf

編輯Mysql配置檔案添加下面字段,注意:這些字段預設沒有自己在server-id字段下面添加就可以了

server-id               = 2

注意:去掉注釋,并把上面的server-id=1屏蔽

master-host =192.168.0.88

指定主伺服器IP位址

master-user = kt

制定在主伺服器上可以進行同步的使用者名

master-password = 123456

密碼

master-port = 3306

同步所用的端口

master-connect-retry = 60

斷點重新連接配接時間

replicate-do-db = kangte

replicate-ignore-db = mysql

啟動從伺服器

[root@zzh /]# /usr/local/mysql/bin/mysqld_safe --skip-slave-start &

--skip-slave-start

啟動從資料庫,不立即啟動從資料庫服務上的複制程序

mysql> create database kangte;

注意:一定要先建立kangte庫否則還原不了

[root@zzh /]# mysql -u root -p kangte < /kangte.sql

恢複資料庫

指定更新點(注意:執行下面指定更新點時,一定要在同步程序沒有啟動時才可以操作)

mysql> CHANGE MASTER TO

    -> MASTER_LOG_FILE='mysql-bin.000006',        #在主伺服器上查的二進制日志名          

    -> MASTER_LOG_POS=656;                        #在主伺服器上查的偏移量值                       

mysql> start slave;

啟動同步程序

檢查同步連接配接性

mysql> show slave status\G;

Slave_IO_Running   : Yes

網絡連接配接正常

Slave_SQL_Running: Yes

資料庫結構正常

上一篇: Web服務
下一篇: Web網站服務