MYSQL已有数据库有部分数据,做主从复制.

已经有数据库,做主从复制

服务器 备注 数据库
192.168.137.6 Master 有2个数据库,不同步mysql数据库

192.168.137.3

Slave 没有数据库

 

Master操作

[mysqld]
#############better###########
log-bin = /www/wdlinux/mysql/data/binlog/mysql-bin.log
server-id = 1    #Id号
expire-logs-days = 60    #binlog保留时间
max-binlog-size = 500M  #binlog文件大小
server-id = 1
binlog-do-db = yhxt8xxx9cn  #需要同步的数据库1
binlog-do-db = datafbdns            #需要同步的数据库2
#binlog-ignore-db = mysql,performance_schema,wxmini
#############end##############

多个数据库需要写多行binlog-do-db = xxx,不能这样写:binlog-do-db = db1,db2

#修改配置后,重启mysql数据库
/etc/init.d/mysql restart

#新建一个用户,用于slave同步master日志

GRANT REPLICATION SLAVE ON *.* To 'slave_user'@'192.168.137.%' IDENTIFIED BY 'slavepass';
flush privileges;

打开2个Xshell终端(s1,s2)

s1: FLUSH TABLES WITH READ LOCK;  #锁定数据库,不让写入数据
s2: show master status;           #获取binlog文件和位置.后面slave需要使用
s2: mysqldump -uroot -p'xxx' -B --master-data=1 --events datafbdns yhxtxxxcn >/root/datafbdns2.sql.gz  #备份现有数据库.
s1:  UNLOCK TABLES;               #解除锁定

 

Slave操作

修改my.cnf

##############better slave config#######
#log-bin=mysql-bin
#binlog_format=mixed
server-id       = 2    #id必须和master不一样

#数据库操作

#导入数据库
mysql -uroot -p'xxxx#' </root/xxx.sql.gz
#配置master的相关信息.
CHANGE MASTER TO MASTER_HOST='192.168.137.6',MASTER_PORT=3306,MASTER_USER='slave_user' ,MASTER_PASSWORD='slavXXXX',MASTER_LOG_FILE='mysql-bin.000008',MASTER_LOG_POS=107;
#启动slave
slave start;

测试省略.

 

posted @ 2021-04-26 17:37  赵海博运维笔记  阅读(442)  评论(0编辑  收藏  举报