1. 程式人生 > >mysql主從介紹、 配置主、配置從

mysql主從介紹、 配置主、配置從

報錯 col 還要 type 大致 cee img 技術分享 一個

mysql主從介紹

MySQL主從又叫做Replication、AB復制。簡單講就是A和B兩臺機器做主從後,在A上寫數據,另外一臺B也會跟著寫數據,兩者數據實時同步的

MySQL主從是基於binlog的,主上須開啟binlog才能進行主從。 主從過程大致有3個步驟 
1)主將更改操作記錄到binlog裏 
2)從將主的binlog事件(sql語句)同步到從本機上並記錄在relaylog裏 
3)從根據relaylog裏面的sql語句按順序執行
主上有一個log dump線程,用來和從的I/O線程傳遞binlog

從上有兩個線程,其中I/O線程用來同步主的binlog並生成relaylog,另外一個SQL線程用來把relaylog裏面的sql語句執行一遍

兩種情況:一種是做備份用,一種是作為讀用
                                                      配置主

下面配置一主一從:
一臺機器(192.168.37.130)作為主,安裝mysql

修改my.cnf,增加server-id=130和log_bin=zenwen1(隨意定義)

#vim /etc/my.cnf                                           //編輯配置文件

技術分享圖片

修改完配置文件後,啟動或者重啟mysqld服務 
#/etc/init.d/mysqld restart
創建用作同步數據的用戶 

#mysql -uroot -p5650895              //登錄mysql

#grant replication slave on *.* to ‘repl‘@slave_ip identified by ‘5650895‘; 

#flush tables with read lock;                        //將mysql鎖住不寫數據
#show master status;

技術分享圖片

                                               配置從
首先安裝mysql 

查看my.cnf,配置server-id=132,要求和主不一樣 

修改完配置文件後,啟動或者重啟mysqld服務 
#/etc/init.d/mysqld restart              //重啟服務
#mysql -uroot 

stop slave; 

change master to master_host=‘192.168.37.130‘, master_user=‘repl‘, master_password=‘5650895‘, master_log_file=‘zenwen1.000024‘,master_log_pos=753715; 
start slave; 

技術分享圖片
查看報錯日誌,找原因,如下繼續操作
技術分享圖片
還要到主上執行 unlock tables,解鎖

從上執行 mysql -uroot 

show slave stauts\G 

技術分享圖片
查看報錯日誌,發現原因

2018-01-10 14:55:18 4470 [ERROR] Slave I/O: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. Error_code: 1593
找到原因,是因為使用的克隆的原因,執行操作
#cd /data/mysql/
#mv auto.cnf  auto.cnf.bak
#/etc/init.d/mysqld restart

技術分享圖片
看是否有
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

mysql主從介紹、 配置主、配置從