建立MySQL新實例,能夠參考上篇博文: MySQL初始化與用戶配置 www.cnblogs.com/qiusuo/p/9451717.htmlhtml
# log bin for master server-id = 1 # 必須配置server-id,而且與其餘相關實例不一樣 binlog-do-db = dbname # 針對那些database有log-bin,對於多個能夠分行寫 binlog-ignore-db = mysql # 忽略那些database的log-bin,對於多個能夠分行寫 binlog-ignore-db = test log-bin = mysql-bin # log-bin的存儲位置,能夠是相對於datadir,也能夠是絕對路徑 log-bin-index = mysql-bin.index binlog-format = mixed # binlog的格式,mixed,statement,row,默認格式是statement expire-logs-days = 10 # binlog的保留天數,爲0則永久保留 binlog-cache-size = 1M max-binlog-size = 1G
爲用戶增長replication權限mysql
grant replication slave on *.* to 'user'@'host' identified by 'password';sql
show master status;數據庫
show master status \G;ide
方法1:拷貝主實例的datadir,做爲從實例的數據文件夾。spa
方法2:dump主實例的數據,導入到從實例中。日誌
方法3:創建主從實例後,鎖主庫,導出主庫,解鎖主庫。導入從庫,開啓slave同步。code
保證從實例的數據狀態和主實例未產生binlog前的狀態一致。orm
# replicate from slave
server-id = 2
master-host = master-hostname
master-port = 3306
master-user = user
master-password = password
replicate-do-db = dbname
replicate-ignore-db = test
replicate-ignore-db = mysql
relay-log-purge = 1 # 自動刪除無用的relay-log
relay-log-recovery = 1 # 因異常致使relay-log錯誤,是否刪除並從新從master獲取。需配合relay-log-purge=0
relay-log = relay-log
relay-log-index = relay-log.index
relay-log-info-file = relay-log.info
max-relay-log_size = 1G
log-slave-updates = 1 #啓用從庫日誌,這樣能夠設置鏈式複製,不然從master中同步binlog的修改不會寫入從庫的bin-log
slave start;server
show slave status \G;
若是Slave_IO_Running和Slave_SQL_Running都是Yes,表示成功了。
對主實例進行鎖表操做:FLUSH TABLES WITH READ LOCK;
導出主實例數據庫備份:mysqldump --host xxxx --port xxx -u user -p password --databases dbname > db_dbname.dump
清除主實例binlog,重置master:reset master;
解鎖主庫:unlock tables;
將數據導入從實例:mysql --host xxxx --port xxx -u user -p password < db_dbname.dump
啓動從實例slave:slave start;
發佈地址:www.cnblogs.com/qiusuo/p/9643174.html