中止mariadbmysql
systemctl stop mariadbsql
修改配置文件my.conf數據庫
vim /etc/my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
server-id服務的惟一標識(主從之間都必須不一樣);log-bin啓動二進制日誌名稱爲mysql-binvim
重啓mariadbide
systemctl start mariadb測試
新建用於主從同步的用戶ccc,容許登陸的從庫是'192.168.11.175'rest
create user 'ccc'@'192.168.11.175' identified by '123456';日誌
給該用戶受權,只能查看的權限server
grant select on . to 'ccc'@'%';同步
授予普通用戶,slave的身份
grant replication slave on . to 'ccc'@'192.168.11.175';
檢查受權帳號的權限
show grants for ccc@'192.168.11.175';
實現對主數據庫鎖表只讀,防止數據寫入,數據複製失敗
flush table with read lock;
記錄下主庫的狀態,記錄下,日誌文件的名字,和位置
show master status;
File | Position |
| mysql-bin.000003 | 1574
鎖表後,必定要單獨再打開一個SSH窗口,導出數據庫的全部數據,
mysqldump -uroot -p --all-databases > /opt/all.sql
確保數據導出後,沒有數據插入,完畢再查看主庫狀態
show master status;
狀態沒有變化,,解鎖主庫,恢復可寫
unlock tables;
從主庫中獎數據下載過來
scp root@47.110.52.76:/opt/all.sql /tmp
修改Slave的/etc/my.cnf,並重啓數據庫
vim /etc/my.conf
[mysqld]
server-id=3
read-only=true
systemctl restart mariadb
恢復主庫Master的數據導入到Slave庫
MariaDB [raindb]> source /tmp/all.sql;
配置複製的參數,Slave從庫鏈接Master主庫的配置
change master to master_host='47.110.52.76',master_user='ccc',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=1574;
啓動從庫的同步開關,測試主從複製的狀況
start slave;
在主庫中 mysql>change master to master_host='' mysql>stop slave;reset slave;