MySQL主從配置

建立MySQL主實例

建立MySQL新實例,能夠參考上篇博文: MySQL初始化與用戶配置 www.cnblogs.com/qiusuo/p/9451717.htmlhtml

bin-log配置

# 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用戶配置

爲用戶增長replication權限mysql

grant replication slave on *.* to 'user'@'host' identified by 'password';sql

查看主實例狀態

show master status;數據庫

show master status \G;ide

建立MySQL從實例

拷貝主實例的數據

方法1:拷貝主實例的datadir,做爲從實例的數據文件夾。spa

方法2:dump主實例的數據,導入到從實例中。日誌

方法3:創建主從實例後,鎖主庫,導出主庫,解鎖主庫。導入從庫,開啓slave同步。code

保證從實例的數據狀態和主實例未產生binlog前的狀態一致。orm

replicate配置

# 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狀態

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

相關文章
相關標籤/搜索