MySQL数据库主从备份同步

MySQL数据库主从备份同步

MySQL备份与恢复实验
1.启动多实例(监听端口3307和3308)

1.创建多实例目录

	mkdir -p /data/mysql/{3307,3308}/data
	chown -R mysql.mysql /data/3307  /data/3308

2.在不同的实例目录中编辑my.cnf

	[mysqld]
    user = mysql
    port = 3307
    socket = /data/3307/mysql.sock
    basedir = /usr/local/mysql
    datadir = /data/3307/data
    log-error = /data/3307/mysql-error.log
    pid-file = /data/3307/mysql.pid
    log_slave_updates = 1
    #log-bin = /data/mysql/3307/mysql-bin

3.初始化数据文件

	/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql  --datadir=/data/3307/data/

4.启动mysql多实例

	mysqld_safe --defaults-file=/data/3308/my.cnf


出现问题,但是给了权限好像还是没有办法解决,于是手动创建错误日志文件

	touch /data/3308/mysql-error.log

​ 再次启动,ok

	mysqld_safe --defaults-file=/data/3308/my.cnf	

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4rwYO3Ow-1595408387676)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1568980293081.png)]
在另一个终端查看是否成功启动

	ss -tnlp | grep mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bpNNVDuy-1595408387680)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1568980346483.png)]

重新启动

	mysqld_safe --defaults-file=/data/mysql/3308/my.cnf > /dev/null 2>&1 &

登陆mysql多实例

	mysql -u root -p -S /data/3308/mysql.sock

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q0feATKh-1595408387684)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1568981342374.png)]

2.开启3307实例的binlog日志

1.写入配置文件

	vim /data/3307/my.cnf
	log-bin = /data/3307/mysql-bin

2.关闭3307实例再打开

	mysqladmin -u root -p -S /data/3307/mysql.sock shutdown
	mysqld_safe --defaults-file=/data/mysql/3307/my.cnf > /dev/null 2>&1 &

3.登陆mysql检验结果

	mysql -u root -p -S /data/3307/mysql.sock 
	show variables like "%log_bin%";

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hq0PK9ys-1595408387689)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1568982521787.png)]

3.在3307的实例上创建pldb,并建表student插入数据(n个用户)

1.创建pldb数据库并进入

	create database pldb;
	use pldb;

2.建student表

	create table student( \
    id int(4) not null,\
    name char(20) not null,\
    age tinyint(2) not null default '0',\
    dept varchar(16) default null\
     );

3.插入数据

	insert into student value(1,'haha',1,'CS');
	insert into student value(1,'hehe',1,'CS'),(1,'xixi',1,'CS');

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XkLHzZmo-1595408387691)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1568982964242.png)]

4.备份pldb数据库的数据(–master-data=2)
	mysqldump -u root -p -B --master-data=2	-S /data/3307/mysql.sock pldb > /data/3307/pldb.dump

–master-data=2 加入后 文件多了一段文字[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kA4VvtV6-1595408387693)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1568985726130.png)]

5.3307实例新数据写入数据库(插入新数据)
	insert into student(id,name) values(1,'hoho');
6.将所有pldb数据库的数据恢复到3308实例中
	 mysql -u root -p -S /data/3308/mysql.sock	
	 source /data/3307/pldb.dump;
	 use pldb;
	 select * from student;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8GUco9eZ-1595408387694)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1568984722516.png)]
复制了全备部分

复制binlog内容,导出binlog日志

	mysqlbinlog mysql-bin.000004 --start-position=120 > /tmp/binlog.sql

进入数据库(注意切库)

	use pldb;
	source /tmp/binlog.sql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UuEpHRXz-1595408387695)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1568986950262.png)]

全部复制完毕!

MySQL主从复制实验
3307作为master主库,3308作为从库
要求3308的主库数据与3307的实时同步
测试过程自行完成

1.master开启binlog

	[mysqld]
	log_bin=/data/mysql/3306/mysql-bin

2…创建用户用于主从复制

	grant replication slave on *.* to 'plrep'@'localhost' identified by 'reppass';

3.主库全量备份,查看主库binlog信息

	mysqldump -u root -p -S /data/3307/mysql.sock -B pldb --master-data=2 > /tmp/pldb_bak.sql
	show master logs;
	cat /tmp/pldb_bak.sql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TfhMByFq-1595408387696)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569030860609.png)]

4.从库做全量恢复

	mysql -u root -p -S /data/3308/mysql.sock 
	source /tmp/pldb_bak.sql;

5.从库设定主库信息(先分别设置server-id)

	CHANGE MASTER TO \
    MASTER_HOST='localhost' ,
    MASTER_PORT=3307,
    MASTER_USER='plrep' ,
    MASTER_PASSWORD='reppass' ,
    MASTER_LOG_FILE='mysql-bin.000004' ,
    MASTER_LOG_POS=556;	

6.开启主从复制

	start slave;

7.测试

一开始两台实例都一样的内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F99yTiSd-1595408387698)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569031604761.png)]

在3307插入内容

	 insert into student(id,name) values(2,'gaga');

3308也同步更新了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gFlacsIL-1595408387699)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1569031695549.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值