欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql双机热备详细操作手册

程序员文章站 2022-04-09 20:43:11
...

1. 登录MySql

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

2. 创建同步账号

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

用户立即生效:

flush privileges;

Mysql双机热备详细操作手册

3. 修改位置文件my.cnf

目录位置:/etc/my.cnf
注:若找不到该文件,请到目录/usr/share/mysql下拷贝my-default.cnf文件,并改名为my.cnf,并放到目录/etc/下
Mysql双机热备详细操作手册
打开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

重启数据库生效或者使用命令flush privileges;生效

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

服务器A:

mysql> show master status;

Mysql双机热备详细操作手册

mysql-bin.000001    120

服务器B:

mysql> show master status;

Mysql双机热备详细操作手册

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

服务器A:

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

Mysql双机热备详细操作手册
服务器B:

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

Mysql双机热备详细操作手册
使用命令生效:

mysql> flush privileges;

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

mysql> start slave;

Mysql双机热备详细操作手册

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

mysql> show slave status;

Mysql双机热备详细操作手册
当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)

Mysql双机热备详细操作手册
Mysql双机热备详细操作手册
双机热备到此成功完成

9.备注

若部署时遇到下面类似错误,请查看数据库日志,进行报错原因排查并处理。
Mysql双机热备详细操作手册

打开/var/lib/mysql/sjk02.pid,查看报错
Mysql双机热备详细操作手册

相关标签: mysql双机热备