Mysql双机热备详细操作手册

1. 登录MySql

mysql --host=localhost --port=3306 --user=root --password=密码 --database mysql;

2. 创建同步账号

grant replication slave on *.* to 账号@对端mysql服务器的ip地址 identified by ‘密码’;
  • 服务器A:
grant replication slave on *.* to 'replicate'@'120.110.119.111.A' identified by '123456';
  • 服务器B:
grant replication slave on *.* to 'replicate'@'120.110.119.112.B' identified by '123456';

用户立即生效:

flush privileges;

在这里插入图片描述

3. 修改位置文件my.cnf

目录位置:/etc/my.cnf
注:若找不到该文件,请到目录/usr/share/mysql下拷贝my-default.cnf文件,并改名为my.cnf,并放到目录/etc/下
在这里插入图片描述
打开my.cnf文件并编辑
服务器A:
新增参数如下:

server-id = 1                                  服务器A的ID默认为1
log-bin = mysql-bin                             日志文件命名为mysql-bin
binlog-do-db = mooc_cloud                      需要热备的数据库mooc_cloud
binlog-ignore-db = mysql                        不需要同步的数据库

log-slave-updates
sync_binlog = 1
auto_increment_offset = 1
auto_increment_increment = 2
replicate-do-db = mooc_cloud
replicate-ignore-db = mysql,information_schema

服务器B:
新增参数如下:

server-id = 2                                  服务器B的ID默认为2
log-bin=mysql-bin                             日志文件命名为mysql-bin
replicate-do-db = mooc_cloud
replicate-ignore-db = mysql,information_schema,performance_schema

binlog-do-db = mooc_cloud                      需要热备的数据库mooc_cloud
binlog-ignore-db = mysql                        不需要同步的数据库
log-slave-updates
sync_binlog = 1
auto_increment_offset = 2
auto_increment_increment = 2

重启数据库生效 service mysql restart

4. 分别查询服务器A、B状态,并记录File和Position参数值备用

服务器A:

mysql> show master status;

在这里插入图片描述

服务器B:

mysql> show master status;

在这里插入图片描述

5. 分别在A、B服务器上使用命令change master to指定同步的位置

服务器A:

mysql> change master to master_host='120.110.119.B',master_port=3306,master_user='replicate',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=5787430;

在这里插入图片描述
服务器B:

mysql> change master to master_host='120.110.119.A',master_port=3306,master_user='replicate',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=111281;

在这里插入图片描述
使用命令生效:

mysql> flush privileges;

6. 分别在A、B服务器上启动服务线程

mysql> start slave;

在这里插入图片描述

7. 分别在A、B服务器上查看从服务器的状态

mysql> show slave status\G

在这里插入图片描述
当Slave_IO_Running和Slave_SQL_Running参数值均为YES时,表示从服务器设置成功

8. 验证数据热备

在服务器A上插入一条数据,然后查看服务器B有没有收到A传过来的数据
相反B服务器操作一致
切换到mooc_cloud库,向app_client表中插入一条数据

mysql> use mooc_cloud
Database changed
mysql> insert into app_client values (2,1,1,'njx');
Query OK, 1 row affected (0.00 sec)

在这里插入图片描述
在这里插入图片描述
双机热备到此成功完成

9.备注

若部署时遇到下面类似错误,请查看数据库日志,进行报错原因排查并处理。
在这里插入图片描述

打开/var/lib/mysql/sjk02.pid,查看报错
在这里插入图片描述
如果出现Slave_IO_Running 说明密码复杂可以设置个简单的,同时网络也要检查。还有就是两遍的数据需要一样包括刚建立的mysql数据库

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值