最近有個項目打算做mycat的數據庫集群,系統使用centos7 數據庫使用mariadb,jdk openjdk1.7. 規劃使用兩臺數據庫:192.168.93.130 作為master,192.168.93.131作為slave。 先設置master數據庫:
1、vi /etc/my.cfg 在[MySQLd]下添加如下代碼
[mysqld]server_id=130binlog-ignore-db=mysql log-bin=master-mysql-bin binlog_cache_size=1M binlog_format=mixed expire_logs_days=7 slave_skip_errors=1062參數解釋:serverid #全局唯一的binlog-ignore-db=mysql #復制過濾,我們不同步mysql系統自帶的數據庫log-bin=master-mysql-bin #開啟logbin功能并設置logbin文件的名稱binlog_format=mixed #混合型復制模式,默認采用基于語句的復制,一旦發現基于語句的無法精確的復制時,就會采用基于行的復制。接下來重啟mysql服務并用客戶端登錄另關于對數據庫修改的sql全部記錄在了bin-logsystemctl restart mariadb
2、添加有主備權限的用戶
grant replication slave, replication client on *.* to 'root'@'192.168.93.130' identified by 'root'; flush PRivileges;具體用戶名隨意 3、設置slave(192.168.93.131 )主機信息 vi
server_id=5 binlog-ignore-db=mysql log-bin=mysql-slave-bin binlog_cache_size = 1M binlog_format=mixed expire_logs_days=7 slave_skip_errors=1062 relay_log=mysql-relay-bin log_slave_updates=1 read_only=1配置文件和master的差不多,主要差別在一下幾點 log-bin=mysql-slave-bin開啟了二進制日志,實際上不開也沒關系,因為我們這個slave只是做slave,如果你這臺slave還有可能要做別人的master的話那么必須開啟 relay_log=mysql-relay-bin 配置中繼日志,用來存放從master的bin-log那邊同步來的數據
配
重啟數據庫服務:sysectl restart mariadb 進入mariadb命令行模式 mysql
change master to master_host=’192.168.93.130’ master_user=’root’,master_passmWord=’root’,aste r_port=3306, master_log_file=’可以在master主機執行 show master status查看文件名’, master_log_pos=427(可以在master主機執行 show master status查看文件位置, master_conect_retry=30;
執行start slave; 執行 show slave status 查看執行情況
如果以外重啟導致數據不能同步可以重新執行change master to 重新,位master_log_pos,以上為在全新數據庫中開啟主從模式,如果不是全新的需要備份數據庫到slave數據庫中,需要先執行 flush tables with read lock; 鎖住master數據庫,然后執行備份命令。
新聞熱點
疑難解答