华夏mysql新建数据库_Mysql数据库搭建主备 实现数据库同步

环境说明

主库:192.168.1.1

从库1:192.168.1.2

从库2:192.168.1.3

思路:

从库1 和 主库 实时同步,为了防止删库跑路(比如update不带条件式的修改)的情况,留下一小时抢救时间,从库2 延时一小时对从库1进行同步

开始搭建

1:配置主库(Master)

a) 修改主库配置文件

# 默认的懒得改

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

# 设置server-id

server-id = 1

# 设置数据库端口

port = 3306

# 设置绑定地址

bind-address = 192.168.1.1

# 设置引擎

default-storage-engine = InnoDB

# 设置默认字符集

character-set-server = utf8mb4

# 开启二进制日志,以备作为其它 Slave 的 Master 时使用

log-bin = mysql-bin

# 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。

expire_logs_days = 10

# 二进制日志最大大小

max_binlog_size = 1000M

# 复制过滤:不需要备份的数据库,不输出(mysql 库一般不同步)

binlog-ignore-db = mysql

# 复制过滤:需要备份的数据库

binlog_do_db = test

# 复制过滤:需要过滤的表

replicate_wild_ignore_table = information_schema.%,performance_schema.%,sys.%

# binlog的格式

binlog_format = row

sync_binlog = 1

# 和 sync_binlog 组成双1 配置 保证数据的完整性

innodb_flush_log_at_trx_commit = 1

# 设置数据库时区

default-time_zone = '+8:00'

b) 配置好后重启数据库

systemctl restart mysqld.service

c) 创建同步账号并赋予同步权限

在Mysql中执行

create user 'replicate'@'%' identified by '这里设置为你的账户密码';

grant replication slave on *.* to 'replicate'@'%';

flush privileges;

d)查看状态

在Mysql中执行

show master status\G;

122f0625143d0d201d44f84ac5be6324.png

这里的 File: mysql-bin.000003 Position: 155先记录下来等下要用到。

2:配置从库1

1:配置主库(Master)

a) 修改主库配置文件

# 默认的懒得改

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

# 设置server-id

server-id = 2

# 设置数据库端口

port = 3306

# 设置绑定地址

bind-address = 192.168.1.2

# 设置引擎

default-storage-engine = InnoDB

# 设置默认字符集

character-set-server = utf8mb4

# 开启二进制日志,以备作为其它 Slave 的 Master 时使用

log-bin = mysql-bin

# 复制过滤:不需要备份的数据库,不输出(mysql 库一般不同步)

binlog-ignore-db = mysql

# 复制过滤:需要备份的数据库

binlog_do_db = test

# 复制过滤:需要过滤的表

replicate_wild_ignore_table = information_schema.%,performance_schema.%,sys.%

# binlog的格式

binlog_format = row

sync_binlog = 1

# 和 sync_binlog 组成双1 配置 保证数据的完整性

innodb_flush_log_at_trx_commit = 1

# 设置数据库时区

default-time_zone = '+8:00'

b) 配置好后重启数据库

systemctl restart mysqld.service

c) 创建同步

在Mysql中执行

change master to master_host='192.168.1.1',master_port=3306,master_user='replicate',master_password='同步账户密码',master_log_file='mysql-bin.000003',master_log_pos=155;

上面的192.168.1.1 和 3306 替换we你的主库ip和端口

mysql-bin.000003 和 155 替换为之前主库查询到的信息。

d)启动同步

在Mysql中执行

start slave;

查看同步状态:

show slave status\G;

其中Slave_IO_Running和Slave_SQL_Running都为Yes的话那就没什么问题了

ef7b23cf5191c7ed2fe3778015b0a975.png

3:配置从库2

基本步骤按配置从库1来、

在上述操作完成后在Mysql中执行以下指令即可

stop slave;

change master to master_delay = 3600;

start slave;

3600为3600秒,你可以修改成你需要的数字。

完工

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值