[TOC] 1.環境規劃 | 主機名 | 角色 | IP地址 | | : : | : : | : : | | db01 | MySQL主庫 | 10.0.0.51 | | db02 | MySQL從庫 | 10.0.0.52 | 2.所有MySQL都開啟binlog功能,確保所有MySQL的serv ...
目錄
- 1.環境規劃
- 2.所有MySQL都開啟binlog功能,確保所有MySQL的server-id不同
- 3.主庫授權主從複製用戶
- 4.主庫將資料庫數據做全備,然後將備份文件推送到從庫
- 5.從庫將備份文件恢復到資料庫
- 6.從庫上找到binlog位置點
- 7.從庫配置主從複製參數
- 8.主庫創建資料庫,然後到從庫驗證數據是否同步
1.環境規劃
主機名 | 角色 | IP地址 |
---|---|---|
db01 | MySQL主庫 | 10.0.0.51 |
db02 | MySQL從庫 | 10.0.0.52 |
2.所有MySQL都開啟binlog功能,確保所有MySQL的server-id不同
主庫:
[mysqld]
basedir=/application/mysql
datadir=/application/mysql/data
socket=/application/mysql/tmp/mysql.sock
port=3306
server_id=10
log-error=/var/log/mysql.log
log-bin=/data/binlog/mysql-bin
sync_binlog=1
binlog_format=row
從庫:
[mysqld]
basedir=/application/mysql
datadir=/application/mysql/data
socket=/application/mysql/tmp/mysql.sock
port=3306
server_id=11
log-error=/var/log/mysql.log
log-bin=/data/binlog/my-bin
sync_binlog=1
binlog_format=row
3.主庫授權主從複製用戶
mysql> grant replication slave on *.* to rep@'10.0.0.%' identified by '123456';
4.主庫將資料庫數據做全備,然後將備份文件推送到從庫
[root@db01 ~]# mysqldump -uroot -p123 -A -B -R --master-data=2 --single-transaction |gzip >/backup/full_$(date +%F).sql.gz
[root@db01 ~]# scp /backup/full_2020-04-09.sql.gz [email protected]:/backup
5.從庫將備份文件恢復到資料庫
[root@db02 ~]# gunzip /backup/full_2020-04-09.sql.gz
mysql> source /backup/full_2020-04-09.sql
mysql> show databases;
6.從庫上找到binlog位置點
[root@db02 ~]# sed -n '22p' /backup/full_2020-04-09.sql
7.從庫配置主從複製參數
mysql> change master to
-> master_host='10.0.0.51',
-> master_port=3306,
-> master_user='rep',
-> master_password='123456',
-> master_log_file='mysql-bin.000008',
-> master_log_pos=1100;
mysql> start slave;
mysql> show slave status\G
8.主庫創建資料庫,然後到從庫驗證數據是否同步
db01:
mysql> create database test1;
db02:
mysql> show databases;