mysql配置主從庫全流程紀錄

業務需要,正好自己從來沒有接觸過mysql運維相關,把步驟記錄下來。

環境信息

  • MySQL 5.7.25
  • 主庫172.24.7.108
  • 從庫172.24.7.109

主庫創建同步角色

查看已有用戶

select distinct concat('User: ''',user,'''@''',host,''';') as query from mysql.user;

刪除用戶

drop user 'slave'@'172.24.7.109';

創建新用戶並限定訪問ip

create user 'slave'@'172.24.7.109' identified by '1234509876';

查詢用戶權限

show grants for 'slave'@'172.24.7.109';

開啓數據複製權限(replication slave不能只作用於某一數據庫,而是全局)

grant replication slave on *.* to 'slave'@'172.24.7.109';

刷新權限

flush privileges;

最終效果如下
在這裏插入圖片描述

修改主庫配置(/etc/my.cnf)

增加以下內容

[mysqld]
# 啓用日誌,默認爲mysql-bin,可替換爲指定的目錄
log-bin = mysql-bin
# 不可重複的序號
server-id = 1
# 日誌保存期限(可選)
expire_logs_days = 30
# 基於行紀錄,5.7.7及以後的版本默認是ROW
binlog_format = ROW

修改從庫配置(/etc/my.cnf)

增加以下內容

[mysqld]
# 啓用日誌(可選)
log-bin = mysql-bin
# 不可重複的序號
server-id = 2
# 日誌保存期限(可選)
expire_logs_days = 30
# 指定同步的數據庫(可選)
replicate-do-db = database
# 基於行紀錄,5.7.7及以後的版本默認是ROW
binlog_format = ROW
# 啓動複製的進程數
slave_parallel_workers = 4
# 基於組提交
slave_parallel_type = LOGICAL_CLOCK
master_info_repository = TABLE
relay_log_info_repository = TABLE
relay_log_recovery = ON

主從同步

從這裏纔開始進行同步過程,首先鎖定主庫只讀

flush tables with read lock;

備份主庫需要做同步的數據庫(如果主庫沒有數據的話此步可以省略)

mysqldump -h172.24.7.108 -P3306 -uroot -ppassword -B database > /home/backup.sql

-B: 導出的數據文件中已存在創建庫和使用庫的語句,不需要手動在原庫是創建庫的操作,在恢復過程中不需要手動建庫,可以直接還原恢復。
如果需要壓縮備份文件在語句最後增加 | gzip >/home/backup.gz

查看主庫bin-log偏移量並記錄

show master status;

在這裏插入圖片描述
解除只讀

unlock tables;

從庫導入備份的數據

mysql -uroot -ppassword < backup.sql

停止從庫slave進程

stop slave;

設置從庫同步信息

change master to master_host='172.24.7.108',master_port=3306,master_user='slave',master_password='1234509876',master_log_file='mysql-bin.000014',master_log_pos=73276696;

啓動同步

start slave;

查看同步狀態,等待紅框內兩項都變成Yes即爲同步成功

show slave status\G;

在這裏插入圖片描述
在這裏插入圖片描述
此後需要備份時只需要關閉主從連接,再對從庫進行備份即可。

從備份信息中恢復單個表數據

提取建表語句

sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `user_online`/!d;q' backup.sql > user_online.sql

提取insert 語句(update同理)

grep -i 'INSERT INTO `user_online`' backup.sql > user_online.sql
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章