二、基本上后端干什么都离不开mysql之mysql主主互备

问题:

ubuntu安装mysql及配置主主互备

解决办法:

两台虚拟机:
机器A: 192.168.31.107
机器B: 192.168.31.108

1. A/B机器分别安装mysql
sudo apt install mysql-server

我在安装时,版本是mysql5.7

设置root用户密码,回车继续

重复root用户密码,回车继续
安装完毕

2. 配置A、B服务器上的mysql

在A上修改配置文件

/etc/mysql/mysql.conf.d/mysqld.cnf

在配置文件中[mysqld]下添加或修改如下内容:

bind-address = 0.0.0.0
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
auto_increment_offset = 1
auto_increment_increment = 2
gtid-mode = on
enforce-gtid-consistency = true
log-slave-updates = true

如果配置文件中存在就修改值,如果不存在就添加
server-id设置为一个整数值,但要保证每台机器上的不同
auto_increment_*这两个值是为了设置id自增的规则,
因为两台mysql主主互备,避免两台机器创建出相同id的记录

在B机器上同样如此修改,只不过有几个值不同

bind-address = 0.0.0.0
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
auto_increment_offset = 2
auto_increment_increment = 2
gtid-mode = on
enforce-gtid-consistency = true
log-slave-updates = true

配置文件都修改完毕
分别重启两个mysql:
sudo service mysql restart

3. A、B上创建同步账户

在A、B机器上均使用命令mysql -uroot -p登录到mysql shell
执行如下命令,创建用户xx,密码为123456用来同步数据
grant replication slave on *.* to 'xx'@'%' identified by '123456';

这里A和B上可以设置不同的用户和密码,
但是这里为了方便我用了同样的

4. A、B上设置同步配置

在A机器上执行如下命令:
change master to master_host='192.168.31.108', master_port=3306, master_user='xx', master_password='123456', master_auto_position=1;
在B机器上执行如下命令:
change master to master_host='192.168.31.107', master_port=3306, master_user='xx', master_password='123456', master_auto_position=1;

两台机器不一样的地方就是,master_host设置彼此的IP地址

5. 开始同步

在A、B机器上分别执行:
start slave;

现在已经开启了主主互备模式
执行如下命令,查看同步状态:
show slave status \G;
如果Slave_IO_Running和Slave_SQL_Running均为Yes,则成功

6. 测试

在A机器上执行:
create database demo1;
在B机器上查看:
show databases;
如果已经同步成功,则B备份A的没有问题

在B机器上执行:
create database demo2;
在A机器上查看:
show databases;
如果已经同步成功,则A备份B的没有问题

以上就完成了主主互备模式

转载于:https://my.oschina.net/bxxfighting/blog/3018624

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值