mysql主從同步

來源:互聯網
上載者:User

標籤:mysql主從同步

一.mysql主從同步
方案:一主一從
   一主多從
   主從(主)從


  master                        slave
172.30.13.8  資料庫服務           172.30.13.191   資料庫服務             
slave角色的資料庫伺服器上一定要有主要資料庫伺服器上的庫、表  表結構一致
(從資料庫伺服器一定要有主要資料庫伺服器的庫和表)
 
   

1.配置master資料庫伺服器
1.1 開啟binlog 日誌(必須啟用)
1.2 授權使用者可以從  slave 資料庫伺服器串連自己 有拷貝資料的許可權
mysql  -uroot -p999
grant replication slave on *.*  to  [email protected]"172.30.13.191" identified by "321";
show master  status; //查詢配置slave時所需的log相關資訊

1.3 指定自己server_id值   (範圍:0-255)
[[email protected] ~]# cat /etc/my.cnf
[mysqld]
log-bin=plj
server_id=8
[[email protected] ~]#  service  mysql  restart



配置slave資料庫伺服器
1  指定自己server_id值
2  開啟binlog 日誌(可選項)
[[email protected] Desktop]# cat /etc/my.cnf
[mysqld]
log-bin
server_id=191
[[email protected] Desktop]# service  mysql  restart
            show master status;   //查看當前使用的binlog日誌資訊

3  指定自己做誰的從資料庫伺服器
mysql  -uroot   -p123
mysql> change master to  
    -> master_host="172.30.13.8",
    -> master_user="plj",
    -> master_password="321",
    -> master_log_file="plj.000001",
    -> master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.08 sec)

mysql> mysql> show slave status\G;
            Slave_IO_Running: No
            Slave_SQL_Running: No
mysql> start slave;
mysql> mysql> show slave status\G;
            Slave_IO_Running: YES
            Slave_SQL_Running: YES



二、主從同步的工作原理
master.info 記錄串連主要資料庫伺服器的資訊
主機名稱-relay-bin.000001  中繼日誌sql語句
主機名稱-relay-bin.index  記錄已有的中繼記錄檔名
relay-log.info   記錄使用的記錄檔資訊
Slave_IO_Running: YES  負責把主要資料庫伺服器binlog 日誌裡的sql語句,複製到自己原生relay-bin記錄檔裡
Slave_SQL_Running: YES  負責執行原生relay-bin日誌,檔案裡的sql語句


測試:從資料庫伺服器能否自動同步主要資料庫伺服器上資料。
mysql  -h172.30.13.8   -u使用者名稱   -p密碼
註:change master to ...即可以指定主伺服器,也可以用來修改已經指定好的伺服器資訊

三、故障排除
1.Slave_IO_Running: NO
物理裝置未連上
防火牆
selinux
授權資訊有誤

2.Slave_SQL_Running: NO
主從庫和表結構不一致
主必須啟用bin-log日誌


四:指定同步庫和表
1.授權同步處理的使用者時必須是*.*
2.在主要資料庫端設定允許從資料庫伺服器備份自己哪些庫資料;

vim /etc/my.cnf
binlog-do-db=name  //只讓從資料器備份自己的哪個庫
binlog-ignore-db=name  //不讓從資料器備份自己的哪個庫
註:上面兩個選項不可以同時使用


或,在從資料庫伺服器端設定自己備份主要資料庫哪些資料;
vim /etc/my.cnf
replicate-do-db=mysql  //指定只備份主要資料庫伺服器上的哪個庫
replicate-ignore-db=mysql //只不備份主要資料庫伺服器上的哪個庫






二、範例1:主 >  從(主) > 從
1.兩台主伺服器先設定授權(否則開啟日誌功能後,所設定的內容將同步到從伺服器,造成安全隱患)
grant replication slave on *.*  to  [email protected]"172.30.13.191" identified by "321";
grant replication slave on *.*  to  [email protected]"172.30.13.192" identified by "321";

show master  status;(查詢正在使用的記錄檔和i點)

2.兩台主伺服器開啟日誌(bin-log)和設定id(server_id=)
3.從(主)伺服器在my.cnf中添加log-slave-updates語句,此項添加後,將會將同步的slave日誌內容同步到本地日誌內,否則將無法進行主從從實驗
4.從伺服器配置詳見上面主從同步;




本文出自 “劉福” 部落格,請務必保留此出處http://liufu1103.blog.51cto.com/9120722/1656835

mysql主從同步

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.