方法一:通过MySQL自身实现主从库热备

1.环境描述

A服务器(主服务器Master):172.1.10.76
B服务器(从服务器Slave):172.1.10.77
主从服务器的Mysql版本皆为5.*
热备方式:主-从
(注:如果slave的MySQL是从master复制过去的,要把uuid更改一下,主从uuid不能相同,路径MySQL\data\auto.cnf)

1.2 主服务器Master配置

1.2.1 创建同步用户

在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICATION SLAVE权限。因为从mysql版本3.2以后就可以通过REPLICATION对其进行双机热备的功能操作。
可以选择MySQL控制台建立,也可以通过navicat建立,控制台方法网上很多,就不再重复了
下面是navica建立时候权限的配置情况,其中服务器权限和权限根据需求勾选即可

rose双机热备怎么选择mysql服务器 server2016双机热备_服务器


rose双机热备怎么选择mysql服务器 server2016双机热备_mysql_02


创建好同步连接帐户后,我们可以通过在从服务器(Slave)上用replicat帐户对主服务器(Master)数据库进行访问下,看下是否能连接成功。

rose双机热备怎么选择mysql服务器 server2016双机热备_MySQL_03

或者继续使用navicat

rose双机热备怎么选择mysql服务器 server2016双机热备_MySQL_04

1.2.2 修改mysql配置文件

MySQL根目录找到配置文件my.ini,在[mysqld]下增加下列参数即可:
如果没有my.ini请参与我小伙伴的文章 [mysqld]
server-id = 1 //可以不是1,但一定是不与slave重复的唯一标识
log-bin=mysql-bin //其中这两行是本来就有的,可以不用动,添加下面两行即可
binlog-do-db = sartas //要同步的库
binlog-ignore-db = mysql //不同步的库

如下图

rose双机热备怎么选择mysql服务器 server2016双机热备_服务器_05

1.2.3 重启mysql服务

修改完配置后,重启一下MySQL服务。(注:添加的内容最好不要复制粘贴,一些编码格式会导致服务起不来。)

1.2.4 查看主服务器状态

rose双机热备怎么选择mysql服务器 server2016双机热备_MySQL_06

1.用root账户登录MySQL控制台
2.锁表这一步很关键,因为如果配置过程中有数据写入的话,File和Position的值可能会发生变化。
3.记录File和Position的值,或者保持窗口打开状态。

注:这里使用了锁表,目的是为了产生环境中不让进新的数据,好让从服务器定位同步位置,初次同步完成后,记得解锁

1.3 从服务器Slave配置

在从服务器建立一个同样的账户

rose双机热备怎么选择mysql服务器 server2016双机热备_mysql_07

1.3.1修改配置文件

[mysqld]
server-id = 2 //不能与master或其他slave相同
log-bin=mysql-bin
replicate-do-db = sartas //同步的库
replicate-ignore-db = mysql,information_schema,performance_schema //忽略的库

1.3.2重启mysql服务

修改完配置文件后,重启一下mysql服务,如果成功则没问题。

1.3.3同步主从数据库首次同步

为了是主从库数据结构相同,先手动同步一次,navicat用起来非常方便

rose双机热备怎么选择mysql服务器 server2016双机热备_服务器_08

1.3.4指定同步开始位置

这步是最关键的一步了,在进入slave服务器mysql操作界面后,输入如下指令(此刻master的表应仍处于锁定状态且salve数据库结构与master结构完全相同):

rose双机热备怎么选择mysql服务器 server2016双机热备_服务器_09


mysql>stop slave; //停止slave线程

change master to //指定master的ip、用户、起始位置等

mysql>start slave; //开启slave线程

mysql> show slave status\G //查看slave状态

可以看到途中

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

表示可以正常同步了。

到此整个配置就结束了,不要忘记master的表要解锁

mysql>unlock tables;

方法二:通过Navicat计划任务实现主从库热备

1.1 Master配置

1.2.1 创建同步用户并赋权

同方法一1.2.1

1.2 slave配置

navicat里登录master库以及本地库

rose双机热备怎么选择mysql服务器 server2016双机热备_MySQL_10


手动同步一次,然后保存过程

rose双机热备怎么选择mysql服务器 server2016双机热备_MySQL_11

rose双机热备怎么选择mysql服务器 server2016双机热备_mysql_12


rose双机热备怎么选择mysql服务器 server2016双机热备_服务器_13


新建计划任务人后确定

rose双机热备怎么选择mysql服务器 server2016双机热备_MySQL_14


计划任务根据需求自定义设置一下就可以了,这里不再重复说明了