mysql 主從庫配置詳解

參考資料

  • 有關mysql的innodb_flush_log_at_trx_commit參數
    https://blog.csdn.net/codepen/article/details/52160715
  • Mariadb二進制日誌binlog詳解
    https://www.cnblogs.com/skymyyang/p/7798670.html
  • 二進制日誌相關命令
    https://www.fujieace.com/mysql/bin-log.html

低級版配置

一個主服務器 一個從服務器
1.master配置

  • 修改etc/my.cnf文件
[mysqld]
server-id=1
log_bin=master-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=test
innodb_flush_log_at_trx_commit=1
binlog_format=mixed

一定要加在[mysqld]之下
參數含義解釋:

[mysqld]                            服務端基本設置
server-id                           mysql實例的唯一標記
log_bin=master-bin                  開啓二進制日誌
binlog-ignore-db                    忽略的數據庫二進制日誌
binlog_format                       設置二進制日誌格式
innodb_flush_log_at_trx_commit      innodb磁盤寫入策略
  • 添加備份賬號
mysql> grant replication slave on *.* to 'backup'@'%' identified by '123456';
mysql> flush privileges;

replication slave 擁有該權限的用戶纔可以進行復制

  • 重啓mariadb
service mariadb restart
  • 查看記錄log_bin 和pos

image

2.slave配置

  • 修改/etc/my.cnf文件
[mysqld]
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
relay_log_recovery=1

參數解釋:

relay-log-index=slave-relay-bin.index       開啓中繼日誌
relay-log=slave-relay-bin
relay_log_recovery            當slave從庫宕機後,假如relay-log損壞了,導致一部分中繼日誌沒有處理,則自動放棄所有未執行的relay-log,並且重新從master上獲取日誌,這樣就保證了relay-log的完整性。默認情況下該功能是關閉的,將relay_log_recovery的值設置爲 1時,可在slave從庫上開啓該功能,建議開啓。

  • 重啓mariadb
  • 配置slave相關參數
mysql> stop slave;
mysql> change master to 
       master_host='master IP',
       master_user='backup',
       master_password='123456',
       master_log_file='master-bin.000001',
       master_log_pos=245;
 mysql> start slave;

參數解釋

master_log_file         讀取的是哪一個二進制日誌
master_log_pos          二進制日誌讀取的地方(從哪個地方開始)
  • 查看是否配置成功
mysql> show slave status\G
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章