概述
對任何一個數據庫的操作都自動應用到另外一個數據庫,始終保持兩個數據庫中的數據一致。
這樣做有如下幾點好處:
可以做災備,其中一個壞了可以切換到另一個。 可以做負載均衡,可以將請求分攤到其中任何一臺上,提高網站吞吐量。 對于異地熱備,尤其適合災備。MySQL 主從復制的方式
1 Master 數據庫操作的任何數據庫的時候,都會將操作記錄寫入到biglog日志文件當中
2 Slave 數據庫通過網絡獲取到主數據庫的日志文件,寫入本地日志系統 ,然后一條條的將數據庫事件在數據庫中完成
3 Slave 重做中繼日志中的事件,將 Master 上的改變反映到它自己的數據庫中,所以兩端的數據是完全一樣的。

環境
操作系統:CentOS
MySQL版本:mysql-5.6.26 (主從兩者數據庫版本必須保持一致)
Master1 配置
1 開啟binlog日志功能
vim /etc/my.cnf
| server-id=6log-bin=mysql-bin |
2 重啟mysql 登陸并授權
mysql -uroot -p123456
| grant replication slave, replication client on *.* to 'repl'@'10.211.55.7' identified by '123456'; |
ip地址為slave服務器的ip地址
3 查看日志狀態
show master status;
Master2 配置
1 開啟binlog日志功能
vim /etc/my.cnf
| server-id=8log-bin=mysql-bin |
2 重啟mysql 登陸并授權
mysql -uroot -p123456
| grant replication slave, replication client on *.* to 'repl'@'10.211.55.7' identified by '123456'; |
ip地址為slave服務器的ip地址
3 查看日志狀態
show master status;
Slave 配置
1 修改配置文件 (注意 slave的默認數據庫啟動的端口必須關閉 service mysql stop)
vim /etc/my.cnf
| [mysqld] binlog-ignore-db=mysql binlog_format=mixed expire_logs_days=7 slave_skip_errors=1062 relay_log=mysql-relay-bin log_slave_updates=1[mysqld_muliti] mysqld=/usr/bin/mysqld_safe mysqladmin=/usr/bin/mysqladmin user=root password=123456[mysqld6] port=3306 datadir=/home/mysql/data6 pid-file=/home/mysql/data6/mysql.pid socket=/home/mysql/data6/mysql.sock user=mysql server-id=7[mysqld8] port=3307 datadir=/home/mysql/data8 pid-file=/home/mysql/data8/mysql.pid socket=/home/mysql/data8/mysql.sock user=mysql server-id=7 |