MariaDB實現主從配置及讀寫分離(一)

1、主從複製方案mysql

1.  在兩臺CentOS7虛擬機上分別部署MariaDB, 主數據庫服務器IP爲192.168.17.235, 從服務器IP爲192.168.17.238. 從服務器經過調取主服務器上binlog日誌, 在本地重建庫、表, 實現與主服務器的AB複製.sql

2、步驟數據庫

1. 對兩臺虛擬機上現有的MariaDB 數據庫初始化.vim

  爲了在啓用binlog日誌及數據庫同步以前保持主、從庫的一致性, 最好對主、從服務器初始化(備份主服務器上現有的庫, 手工導入到從服務器上). 當現有庫、表引擎都是MyISAM時, 執行離線備份、恢復, 能極大的提升效率.   其它狀況能夠經過musqldump等工具來實現庫的導出、導入. 服務器

(1)在主服務器192.168.17.235 上以下操做:網絡

mysql -u root -p     //登入MariaDB
MariaDB>reset master;    //重置binlog日誌 MariaDB>quit; mysqldump -u root -p --all-databases > /root/mysql.sql    //備份主服務器庫
scp /root/mysql.sql root@192.168.17.238:/root/    //將備份文件拷貝到從服務器

(2)在從服務器192.168.17.238上以下操做:ide

mysql -u root -p < /root/mysql.sql    //將備份數據庫導入從服務器MariaDB

2. 配置主服務器工具

vim /etc/my.cnf
[mysql]
log_bin=c235-bin    //啓用binlog日誌, 並指定文件名前綴
server_id=68      //指定服務器ID號

systemctl restart mariadb  

MariaDB>grant replication slave on *.* to 'replicater'@'192.168.17.%' identified by '123';    //新建備份用戶,授予複製權限「replication slave", 容許從slave服務器訪問
MariaDB>show master status;    //查看主服務器狀態, 記錄當前日誌文件名和偏移位置

 3. 配置從服務器ui

vim /etc/my/cnf    
[mysql]
log_bin=c238-bin    //啓用binlog日誌, 並指定文件名前綴
server_id=69       //指定服務器ID號, 不能與master的ID相同
slave-net-timeout=60    //指定當主、從服務器網絡中斷時,重試超時時間

systemctl restart mariadb    //重啓MariaDB

MariaDB>change master to master_host='192.168.17.235',      //經過change master語句指定master的IP、同步用戶名和密碼、起始日誌文件、偏移位置
            master_user='replicater',
            master_password='123',
            master_log_file='user.000004',
            master_log_pos=401

MariaDB>start slave;      //啓動slave
MariaDB>show slave status\G;    //查看slave服務器狀態

4. 設置從服務器爲只讀spa

  從服務器做爲主服務器的備份, 避免寫入衝突, 在採用主、從複製結構時, 爲保持主、從數據庫的一致性, 用戶不能在從服務器上執行數據庫寫入操做. 

  能夠經過my.cnf將從服務器配置爲只讀模式. 在只讀模式下, 只有super權限的用戶和slave同步線程才能寫入.

vim /etc/my.cnf
[mysql]
...
read-only=1    //設置從服務器爲只讀模式
...

systemctl restart mariadb
 

相關文章
相關標籤/搜索