又叫做主從複制,是通過二進制日志檔案完成的,注意: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
資料庫結構正常