mysql双主机热备

1,主库配置
cp -f ~/files/my.cnf.master /opt/my.cnf
service mysql restart
mysql -uroot -p
create user 'repl'@'%' identified with mysql_native_password by 'repl';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
#执行以下命令,记下File和Position
show master status;

2,从库配置
cp -f ~/files/my.cnf.slave /opt/my.cnf
service mysql restart
mysql -uroot -p
STOP SLAVE;
#执行下面命令,填上记下的File和Position
CHANGE MASTER TO
MASTER_HOST='172.19.42.200',
MASTER_USER='repl',
MASTER_PASSWORD='repl',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=192707;
#启动从数据库IO线程
START SLAVE;
#查看是否成功,如果发现Slave_IO_Running和Slave_SQL_Running都为yes,则成功了
show slave status \G;

3,重置、查看日志
reset master;
reset slave;
#查看binlog全部文件
show binary logs;
show variables like 'log_bin%';
show variables like 'binlog%';
show binlog events in'mysql-bin.000007';

配置双主热备,只需将1、2步骤中除了“覆盖数据库配置文件”,之外的命令反过来执行一遍即可。

 

my.cnf.master

 1 [mysqld]
 2 basedir = /opt/mysql
 3 datadir = /opt/mysql/data
 4 log-error = /var/log/mysqld.log
 5 port=3306
 6 max_connections=200
 7 character-set-server=utf8
 8 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
 9 #服务id
10 server-id=1
11 #bin log 日志
12 log-bin=mysql-bin
13 #bin log 日志格式
14 #STATEMENT:记录主库执行的SQL复制到从库; 调用时间函数时会导致主从数据不一致
15 #ROW:记录主库每一行的变化;效率低
16 #MIXED:修复一些主从数据不一致情况;本地变量调用还会存在问题;
17 binlog_format=statement
18 #二进制日志自动删除/过期的天数。默认值为0,表示不自动删除
19 expire-logs-days=7
20 #主从复制忽略的数据库
21 binlog-ignore-db=information_schema
22 binlog-ignore-db=performance_schema
23 binlog-ignore-db=mysql
24 #开启主从复制的数据库
25 binlog-do-db=ffs
26 #启用中继日志
27 relay_log=mysql-relay-bin.log
28 #在作为从数据库时候,有写入操作也要更新二进制日志文件
29 log-slave-updates=1
30 replicate-do-db=ffs
31 #replicate-ignore-db=mysql
32 #replicate_ignore_db=information_schema
33 #replicate_ignore_db=performance_schema
34 #非只读
35 read_only=0
36 #跳过主从复制中遇到的所有错误或指定类型的错误
37 slave-skip-errors=all
38 #标识自增长字段每次递增的量,也就是步长
39 auto-increment-increment=2
40 #表示自增长从哪个数开始,互为主从的两个机器设置不一样较好
41 auto-increment-offset=1
42 [mysql]
43 default-character-set=utf8
44 [client]
45 port=3306
46 default-character-set=utf8

 

my.cnf.slave

 1 [mysqld]
 2 basedir = /opt/mysql
 3 datadir = /opt/mysql/data
 4 log-error = /var/log/mysqld.log
 5 port=3306
 6 max_connections=200
 7 character-set-server=utf8
 8 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
 9 #服务id
10 server-id=2
11 #bin log 日志
12 log-bin=mysql-bin
13 #bin log 日志格式
14 #STATEMENT:记录主库执行的SQL复制到从库; 调用时间函数时会导致主从数据不一致
15 #ROW:记录主库每一行的变化;效率低
16 #MIXED:修复一些主从数据不一致情况;本地变量调用还会存在问题;
17 binlog_format=statement
18 #二进制日志自动删除/过期的天数。默认值为0,表示不自动删除
19 expire-logs-days=7
20 #主从复制忽略的数据库
21 binlog-ignore-db=information_schema
22 binlog-ignore-db=performance_schema
23 binlog-ignore-db=mysql
24 #开启主从复制的数据库
25 binlog-do-db=ffs
26 #启用中继日志
27 relay_log=mysql-relay-bin.log
28 #在作为从数据库时候,有写入操作也要更新二进制日志文件
29 log-slave-updates=1
30 replicate-do-db=ffs
31 #replicate-ignore-db=mysql
32 #replicate_ignore_db=information_schema
33 #replicate_ignore_db=performance_schema
34 #非只读
35 read_only=0
36 #跳过主从复制中遇到的所有错误或指定类型的错误
37 slave-skip-errors=all
38 #标识自增长字段每次递增的量,也就是步长
39 auto-increment-increment=2
40 #表示自增长从哪个数开始,互为主从的两个机器设置不一样较好
41 auto-increment-offset=2
42 [mysql]
43 default-character-set=utf8
44 [client]
45 port=3306
46 default-character-set=utf8

 

posted @ 2023-08-10 16:15  光何  阅读(32)  评论(0编辑  收藏  举报