Mysql互为主从

本文详细介绍了在CentOS 6.5环境下,如何通过配置Mysql A和Mysql B实现互为主从的数据库同步环境。包括时间同步、配置文件修改、同步用户创建、bin-log初始化及同步配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mysql互为主从
环境:
系统环境:centos6.5_x64
Mysql-A:172.18.49.10
Mysql-B:172.18.49.2
Mysql安装已经完成。
两台mysql上时间同步:

ntpdate pool.ntp.org

在A上操作:

vi /etc/my.cnf

添加:
log-bin=mysql-bin //开启二进制日志
server-id=1 //mysql的id
relay_log=relaylogs

service mysqld restart

登录mysql,新建同步用户:

mysql -uroot –p

mysql> grant all on . to 'tongbu'@'172.18.49.%' identified by '123456';
mysql> flush privileges;
初始化bin-log日志
mysql> reset master;
查看最新bin-log日志:
mysql> show master status;

图中的mysql-bin.000001就是最新的日志文件名称,Position是bin日志结束的位置,这两个值会在主机B中使用。
主机A配置完毕,切记为了保持主从的一致性,先不要操作主机A mysql数据库,待主机B配置完成且设置同步后才可以进行操作。
主机B配置:
修改配置文件:

vi /etc/my.cnf

log-bin=mysql-bin
server-id=2
relay_log=relaylogs

service mysqld restart

增加同步用户:

mysql -uroot –p

mysql> grant all on . to 'tongbu'@'172.18.49.%' identified by '123456';
mysql> flush privileges;
初始化bin-log日志:
mysql> reset master;
查看bin-log日志:
mysql> show master status;

主机B配置完成,现在进行同步配置
同步配置:
在主机A上操作:
mysql> change master to master_host='172.18.49.2',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;
这里的master_host是指主机B的ip地址,master_uesr是执行同步操作的用户名,master_password是执行同步的用户密码,master_log_file是主机B的bin-log日志,master_log_pos是从bin-log日志开始同步的位置。
开启同步:
mysql> start slave;
查看同步设置是否成功:

在主机B 上操作:
mysql> change master to master_host='172.18.49.10',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;
mysql> start slave;
mysql> show slave status\G;

则操作完成。
最后查看字符集!!!!!
show variables like'%char%';

同步测试:
在A主机或者B主机上做都可以。
在A上新建一个数据库
mysql> create database test2;
在B上可以查看到,之后再B上给数据库中插入信息,则在A上也可以查看的到:
mysql> create table users(id int(16),name char(16),sex varchar(64));
成功!!!

转载于:https://blog.51cto.com/14241151/2363179

### 配置两台 MySQL 实现双向主从复制 为了实现两个 MySQL 服务器之间的双向主从复制,每台服务器都需被配置成既是主服务器也是从服务器。以下是详细的配置过程: #### 修改 my.cnf 文件 对于每一台 MySQL 服务端,在 `my.cnf` 或者 `my.ini` 中加入如下参数来指定唯一的 server-id 和启用二进制日志记录功能[^1]: ```ini [mysqld] server-id=1 # 对于第二台机器应设为不同的值, 如2 log-bin=mysql-bin binlog-do-db=testdb # 只同步testdb数据库的操作到其他节点 ``` #### 创建用于复制的账户 在 Master A 上执行 SQL 命令创建一个具有 REPLICATION SLAVE 权限的新用户,并授予远程访问权限给这个新账号以便 Slave B 能够连接并请求更新数据流;同样地也需要在 Master B 执行相同操作以允许来自对方主机的数据变更通知。 Master A: ```sql CREATE USER 'replicator'@'B_HOST_IP' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'B_HOST_IP'; FLUSH PRIVILEGES; ``` 其中 `B_HOST_IP` 是指代另一台MySQL实例所在的位置地址。 #### 设置初始位置信息 获取当前 binlog 的文件名和偏移量作为后续设置 slave 进程所需的信息源点。 ```sql SHOW MASTER STATUS\G ``` #### 启动Slave进程 假设已经得到了上面命令返回的结果,则可以在目标slave上通过CHANGE MASTER语句来进行初始化配置: ```sql CHANGE MASTER TO MASTER_HOST='A_HOST_IP', MASTER_USER='replicator', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=4; START SLAVE; ``` 以上步骤需要分别针对两台服务器重复一遍,确保各自都能正常接收到来自伙伴方发送过来的日志事件。 #### 测试与验证 完成上述所有准备工作之后就可以尝试向任意一边写入测试表结构或记录行项目看看另一边是否会自动接收到相应变动情况了。如果一切顺利的话就说明整个双活架构搭建成功!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值