先理論,後實踐!在理論的基礎上有指導性的實踐會更快,也更容易發現錯誤.理論參考高性能mysql這本書,以前大概看過一遍,但實際生產中並無怎麼注意mysql性能這方面,今天用到主備,就把第十章的複製拿出來學習一下,並作好彙總記錄.mysql
概述sql
複製解決的基本問題是讓一臺服務器的數據與其餘服務器保持同步,mysql支持兩種同步,一是基於行的複製和二是基於語句的複製,兩種方式都是經過主庫上記錄二進制日誌.centos
mysql複製大部分是向後兼容的,複製不會增長主庫的開銷,主要是啓用二進制日誌帶來的開銷,也就是網絡I/O的開銷.服務器
工做原理網絡
複製分爲三個步驟:ide
具體配置性能
三臺虛擬機:192.168.5.201 hostname:centos01學習
192.168.5.202 hostname:centos02spa
192.168.5.203 hostname:centos033d
三臺主機中,咱們把201做爲主服務器,在主服務器上的配置以下:
1./etc/my.cnf 裏配置 server-id=201 log_bin=testMSback #名字本身起 2.mysql 裏配置 mysql -uroot -p use mysql; create user 'repl'@'192.168.5.%' identified with 'mysql_native_password' by 'your pwd'; grant replication slave on *.* to 'repl'@'192.168.5.%'; 3.查看master的狀態 show master status;
20二、203上的配置以下:
1./etc/my.cnf server-id=202 log_bin=testMSback ---------------------------------- server-id=203 log_bin=testMSback 2.mysql裏的配置 change master to master_host='192.168.5.201',master_user='repl',master_password='your pwd', master_log_file='testMSback.000003',master_log_pos=1578; 3.開啓從服務器 start slave; show slave status;
當看到上面的兩個yes,就是成功了。
遇到的問題就是slave_io_Running:connecting,怎麼也成不了yes,緣由就是登錄用戶的權限有問題,好在都解決了。
mysql的日誌: