mysql主從介紹
MySQL主從又叫作Replication、AB複製。簡單講就是A和B兩臺機器作主從後,在A上寫數據,另一臺B也會跟着寫數據,二者數據實時同步的mysql
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)做爲主,安裝mysqlsql
修改my.cnf,增長server-id=130和log_bin=zenwen1(隨意定義)vim
#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,解鎖ide
從上執行 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 rest