linux 数据库主从配置文件,Linux下配置mysql数据库主从自动备份

文章目录

[隐藏]

一、复制数据库

二、主服务器配置

三、从服务器配置

四、其他说明

当网站内容越来越多的时候,数据库也变得越来越大了。如果不小心误删了,或者被攻击了,那就什么都没有了,一切归零。到现在博主也认识到了数据库的重要性,于是决定研究研究数据库的自动备份。如果你是土豪那可以直接买各种云服务商的数据库,自带容灾备份的,安全性比较好。

本文仅讨论数据库放在本地的情况,备份方式为主从:即一台服务器作为主服务器,另外一台服务器作为备份服务器,当主服务器故障时,可以通过备份服务器来接管/恢复。

先来看看数据库主备备份的原理:

MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 MySQL主从是基于binlog的,主上须开启binlog才能进行主从。 主从过程大致有3个步骤 1)主将更改操作记录到binlog里 2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里 3)从根据relaylog里面的sql语句按顺序执行 主上有一个log dump线程,用来和从的I/O线程传递binlog 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句执行一遍 两种情况:一种是做备份用,一种是作为读用

简单的说就是master将数据库的改变写入二进制日志,slave同步这些二进制日志,并根据这些二进制日志进行数据操作。

环境介绍:

本次配置的环境为:centos7,使用LNMP1.4安装的Mysql5.5,主服务器为AWS服务器(下面简称主服务器),从服务器为京东云服务器(下面简称从服务器),现在需要将主服务器中名为img的数据库做主从同步,自动同步到从服务器上。

准备工具:xshell

一、复制数据库

1、首先要将主服务器的数据库复制到从服务器中。

用xshell连接主服务器,导出数据库:

mysqldump -uroot -p img >/root/img.sql ---输入数据库密码---

然后ls看下,可以看到一个 img.sql的文件。

2、用xshell连接从服务器,使用sftp命令远程到主服务器(有提示输入yes):

sftp root@主服务器IP地址 ---输入ssh密码--- cd /root

然后ls看下,可以看到主服务器的目录,里面有个img.sql的文件,执行:

get img.sql

这样数据库文件就被复制到从服务器上了。 exit 退出sftp。

3、接下来在从服务器上建立一个名为img的数据库,排序规则设为uft8

mysql -uroot -p ---输入数据库密码--- create database img; use img; set names utf8; source img.sql

这样就成功导入了,exit退出回到linux命令行。

二、主服务器配置

1、切回主服务器,用vim 编辑 /etc下的my.cnf,如图

2e23b8cafad86b57010c45b25a35b78e.png

这里主要配置的是server-id和log-bin。server-id用于区分不同主机上的数据库,log-bin是二进制文件的名字(可以随意命名)。同时,为了保证只同步需要的数据库,我们需要加上:

binlog-do-db=img binlog-ignore-db=mysql

配置完成如图:

25141dc17a71e23493d5b9cbfa963576.png

然后 :wq 保存退出,重启mysql:

service mysql restart

3b159e5480f9d9d229d5b4a346ac0b32.png

2、连接数据库进行如下操作:

mysql -uroot -p img ---输入数据库密码--- #以下为修改数据库连接权限 grant all privileges on *.* to 'root'@'%' identified by '自定义密码'; flush privileges; #下面为显示bin-log文件名和位置 show master status;

执行完最后一条后我们可以看到:

ed4918c97c4bf97256ad22d0bd8315db.png

记下红框处的文件名和数字。

三、从服务器配置

1、连接到从服务器,用vim修改/etc下的my.cnf文件,把server-id改为2。

重启mysql服务:

service mysql restart

2、连接数据库,配置从数据库:

mysql -uroot -p ---输入数据库密码--- stop slave; change master to master_user='root', master_password='你设置的自定义密码', master_host='主服务器地址', master_log_file='mysql-bin.000011', #记下的上图红框的文件名 master_log_pos=255; #记下的上图红框的位置 start slave; show slave statusG #查看是否安装成功

如图,这两个是YES就成功了

b9f61e224210f4b93f1fb87e4288bf63.png

四、其他说明

现在只要主服务器上的数据库有变动,从服务器上也会时时变动,达到了数据库异地容灾备份的功能。如果需要多服务器备份,那么可以把多个服务器中my.cnf中的server_id修改为不同,并按以上教程重新配置一遍,每个服务器的数据库可做主服务器也可以做从服务器。

如要同步多个数据库,可在主服务器的my.cnf 中,添加多条 binlog-do-db,指向多个数据库。

原文出处:xiaoweigod -> https://www.xiaoweigod.com/network/1502.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值