快速搭建MySQL主從同步
概述:在實際生產環境中,如果對數據庫的讀和寫都在同一個數據庫服務器中操作,無論是在安全性、高可用性,還是高併發等各方面都是完全不能滿足時間需求的,因此
一般來說都是通過主從複製(Master-Slave)的方式來同步數據,再通過讀寫分離來提升數據庫的併發負載能力。
主從用途
實時災備,用於故障切換,主數據庫出現問題,可以切換到從數據庫
讀寫分離,提供查詢服務
數據備份,避免影響業務
下面通過實驗案例來分析
一臺主MySQL 兩臺從MySQL
主 192.168.30.33/24
從 192.168.30.34/24
192.168.30.35/24
首先關閉防火牆和selinx
service firewalld stop
setenforce 0
1、 建立時間同步環境,在主節點上搭建時間同步服務器。
yum install -y ntp
[root@lin3033 ~]# vi /etc/ntp.conf
大約17行修改添加 約束網段和子網
[root@lin3033 ~]# systemctl start ntpd
接下來修改主MySQL的配置文件
[root@lin3033 ~]# vi /etc/my.cnf
全局配置模塊下添加如下
[root@lin3033 ~]# systemctl restart mysqld
接下來配置兩臺從服務
slave1:
yum install -y ntp
ntpdate 192.168.30.33
echo '*/30 * * * * /usr/sbin/ntpdate 192.168.30.33' >> /var/spool/cron/root
[root@lin3035 ~]# vi /etc/my.cnf
[root@lin3035 ~]# systemctl restart mysqld
slave2:
yum install -y ntp
ntpdate 192.168.30.33
echo '*/30 * * * * /usr/sbin/ntpdate 192.168.30.33' >> /var/spool/cron/root
[root@lin3034 ~]# vi /etc/my.cnf
[root@lin3034 ~]# systemctl restart mysqld
數據庫一主多從操作
Master:
授權用戶相應權限
GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.30.%' IDENTIFIED BY 'abc123';
授權myslave 登陸192.168.30。%網段
FLUSH PRIVILEGES;
show master status; //要記下 Position 列的值 會變更,每次操作時需確認無變動纔可進行下一步
slave1:
mysql> change master to master_host='192.168.30.33', master_user='myslave', master_log_file='mysql-bin.000001', master_log_pos=471;
mysql> start slave;
slave 2
mysql> change master to master_host='192.168.30.33', master_user='myslave', master_log_file='mysql-bin.000001', master_log_pos=471;
mysql> start slave;
驗證兩臺Slave_IO_Running、Slave_SQL_Running是否是YES,兩個都是YES表示mysql主從複製配置成功了
mysql> show slave status \G
slave 1
slave 2
如果不放心可以在主服務器中創建一個庫,之後看看兩臺從有沒有
在主MySQL中添加一個數據庫
mysql> create database client;
在兩個從服務器中查看