双mysql配置互备

轩辕暗神 7月前 ⋅ 568 阅读

配置数据库1:192.168.77.3 配置数据库1:192.168.77.4

1,修改配置文件

修改主库配置文件:

#只作为主库时的配置数据
server-id=1  # 唯一标识符,主从库不能相同  
log-bin=mysql-bin  # 开启二进制日志  
binlog-format=ROW  # 二进制日志格式  
auto-increment-increment=2  # 自增字段的起始值增量  
auto-increment-offset=1  # 自增字段的起始值  
binlog-ignore-db=mysql  # 不同步的数据库  
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#同时也要作为从库时要配置的数据
    relay-log=relay-bin  # 为主库充当从库时启用中继日志
    # 自增字段配置
    auto-increment-increment=2  # 自增步长为2,确保每台服务器的自增值不会冲突
    auto-increment-offset=1     # 主库的自增偏移量为1

修改从库配置文件:

#只作为从库时的配置数据
server-id=2  # 唯一标识符,与主库不同  
log-bin=mysql-bin  # 开启二进制日志(从库开启是为了防止未来可能的主从切换)  
binlog-format=ROW  # 二进制日志格式  
auto-increment-increment=2
auto-increment-offset=2
binlog-do-db=tws  # 指定要同步的数据库
#binlog-do-db=ziyuan  # 指定要同步的数据库
binlog-do-db=test
binlog-do-db=ziyuan
binlog-do-db=ziyuanUt8
#同时也要作为主库时要配置的数据
    relay-log=relay-bin  # 中继日志配置
    # 自增字段配置
    auto-increment-increment=2  # 自增步长同样为2,和主库保持一致
    auto-increment-offset=2     # 从库的自增偏移量为2,确保与主库不同

2. 创建用户并授权(双向)

为了实现双向复制,你需要在主库和从库上都创建复制用户,并授予相应的权限。

在主库上创建复制用户(用于从库连接主库)(192.168.77.3)

CREATE USER 'slave'@'192.168.77.4' IDENTIFIED BY '123456@Abc';  
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.77.4';  
FLUSH PRIVILEGES;

在从库上创建复制用户(用于主库连接从库)(192.168.77.4)【如果是单主从就不需要配置】

CREATE USER 'slave'@'192.168.77.3' IDENTIFIED BY '123456@Abc';  
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.77.3';  
FLUSH PRIVILEGES;

3. 设置主库上的从库

在主库上查看二进制日志状态:

SHOW MASTER STATUS;

返回示例: +----------------+--------+-------------------------+----------------+-----------------+ |File |Position|Binlog_Do_DB |Binlog_Ignore_DB|Executed_Gtid_Set| +----------------+--------+-------------------------+----------------+-----------------+ |mysql-bin.000007| 154|tws,test,ziyuan,ziyuanUt8| | | +----------------+--------+-------------------------+----------------+-----------------+ 记录下File和Position的值,这些值在后续配置从库时需要用到。

在主库上(192.168.77.3),配置从库:

CHANGE MASTER TO  
MASTER_HOST='192.168.77.4',  
MASTER_USER='slave',
MASTER_PASSWORD='123456@Abc',
MASTER_LOG_FILE='mysql-bin.000007', # 替换为从库上的二进制日志文件
MASTER_LOG_POS=154;	# 替换为从库上的二进制日志位置

启动主库的复制进程:

START SLAVE;

4. 设置从库上的主库

在从库上(192.168.77.4),配置主库:

CHANGE MASTER TO  
MASTER_HOST='192.168.77.3',  
MASTER_USER='slave',
MASTER_PASSWORD='123456@Abc',
MASTER_LOG_FILE='mysql-bin.000006', # 替换为主库上的二进制日志文件
MASTER_LOG_POS=154;# 替换为主库上的二进制日志位置

启动从库的复制进程:

START SLAVE;

检查复制状态

最后,使用以下命令检查主从复制的状态,确认一切正常:

SHOW SLAVE STATUS\G;

其他会用到的指令

重置从库的中继日志 重置中继日志可以清除当前存在的中继日志文件并重新生成。执行以下命令:

RESET SLAVE ALL;

停止从库复制 首先,停止从库的所有复制线程:

STOP SLAVE;

停止从库的 IO 线程 在执行 CHANGE MASTER TO 命令之前,先运行以下命令来停止从库的 IO 线程:

STOP SLAVE IO_THREAD;

如果你想停止整个复制进程(包括 SQL 线程),可以执行:

STOP SLAVE;

全部评论: 0

    我有话说: