mysql主從介紹、 配置主、配置從
阿新 • • 發佈:2018-01-23
報錯 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主從介紹、 配置主、配置從