mysql主從同步

關閉selinux  iptables

保證從數據服務器上有主數據服務器的庫和表且表結構要與主數據服務器一致

主服務器

    授權從服務器

mysql> grant replication slave on *.* to userslave@'192.168.70.132'  identified by '123456';

    開啓binlog日誌

[root@localhost mysql]# vim /etc/my.cnf
log-bin
server_id=1   主從服務器必須都要有server_id且servrer_id的值在整個主從架構中不能重複
[root@localhost mysql]# service mysql restart

    查看主服務器狀態。file爲從服務器指定時的master_log_file文件,position爲master_log_pos指定值。

mysql> show master status;
+----------------------+----------+--------------+------------------+-------------------+
| File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------------+----------+--------------+------------------+-------------------+
| localhost-bin.000007 |      120 |              |                  |                   |
+----------------------+----------+--------------+------------------+-------------------+

從服務器

    首先測試授權用戶的權限

    其次配置my.cnf

[root@localhost mysql]# vim /etc/my.cnf
Server_id=2    主從服務器id值不能一樣

    最後用自己本機數據庫管理員登陸,指定自己的主服務器。

mysql> change master to
    ->  master_host='192.168.70.129',
    ->  master_user='userslave',
    ->  master_password='123456',
    ->  master_log_file='localhost-bin.000007',
    ->  master_log_pos=120;

做從服務器時多出的文件

localhost-relay-bin.000001 中繼binlog日誌
localhost-relay-bin.index 存放已有的中繼binlog日誌
master.info   主數據庫服務的信息
relay-log.info   中繼日誌信息

查看從服務器狀態

mysql>  start  slave; //啓動同步
mysql>  stop  slave;  //停止同步
mysql> show slave status\G;
Slave_IO_Running: No
Slave_SQL_Running: No
mysql> start slave;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

兩個全部爲yes同步成功


mysql主從工作原理

    從服務器IO進程:負責連接主服務器。從主的binlog日誌裏拷貝sql語句放到本機的relaybinlog日誌文件裏。relaybinlog:中繼binlog日誌

    從服務器的SQL進程:執行本機中繼binlog日誌文件裏sql語句,把數據寫進本機的數據庫裏。

mysql主從同步的結構模式

    一主一從

    一主多從:(生產中用的比較多)

    主從從

    主主:互爲主從

主服務器端

binlog-do-db=name    設置master對哪些庫記日誌
binlog-ignore-db=name 設置master對哪些庫不記日誌

從服務器端

replicate-do-db=name     僅複製指定庫,可設置多條
replicate-ignore-db=name  不復制哪些庫
log-slave-updates         記錄從庫更新,允許鏈式複製(主從從)
relay-log=               指定中繼日誌文件名
report-host=             報告給master的主機名或IP地址
slave-net-timeout=60             網絡中斷時,重試超時(默認60s)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章