mysql 二进制位置_【Linux】MySQL 基于二进制日志位置的主从配置

软件介绍

Centos版本: CentOS Linux release 7.6.1810

系统内核版本: Linux version 3.10.0-957.12.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Tue May 14 21:24:32 UTC 2019

MySQL 版本: 5.7.26

本案例配置一主一从(master 所在机器:192.168.56.2, slave 所在机器: 192.168.56.3)

操作步骤

新建 shell 会话 A 到 192.168.56.2,开放用于数据库 tcp 连接的 3306 端口,配置 mysql 并重启服务。所用命令列表类似于下:

# 开放用于数据库 tcp 连接的 3306 端口

[root@localhost ~]# firewall-cmd --add-port=3306/tcp --permanent

[root@localhost ~]# vi /etc/my.cnf

# 编辑 mysql 配置文件,在 [mysqld] 节段添加如下两句:

# log-bin=mysql-bin

# server-id=1

# 重启 mysql 服务

[root@localhost ~]# /etc/init.d/mysqld restart

# 登录 mysql 管理界面查看 master 相关信息并备份数据库

[root@localhost ~]# /usr/local/mysql/bin/mysql -u root -p

# 输入你的数据库密码

# root 用户授权(包含主从复制权限)

grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

mysql> -- 给所有的数据表加一把读锁(生产环境慎用)

mysql> flush tables with read lock;

mysql> -- 保持当前会话的连接状态,不要退出

新建 shell 会话 B 到 192.168.56.2,查看 mysql 的 master 相关信息并备份数据库。所用命令列表类似于下:

[root@localhost ~]# /usr/local/mysql/bin/mysql -u root -p

# 输入你的数据库密码

mysql> -- 查看 mysql 的 master 相关信息

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 | 154 | | | |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

# 记 File 列数据为 your_log_file

# 记 Position 列数据为 your_log_file_position。

mysql> \q --退出 mysql 管理界面

# 备份数据库(全库)到文件 /root/dbdump.db

[root@localhost ~]# /usr/local/mysql/bin/mysqldump --all-databases --master-data > dbdump.db

# 在会话 A 中的 mysql 管理界面释放读锁

A mysql> unlock tables;

新建 shell 会话 C 到 192.168.56.3,开放用于数据库 tcp 连接的 3306 端口,导入主机器数据库数据,配置 mysql 并重启服务,在 mysql 管理界面进行 master 相关配置。所用命令列表类似于下:

# 开放用于数据库 tcp 连接的 3306 端口

[root@localhost ~]# firewall-cmd --add-port=3306/tcp --permanent

# 开启 mysql 服务

[root@localhost ~]# /etc/init.d/mysqld start

# 导入数据

[root@localhost ~]# /usr/local/mysql/bin/mysql -u root -p

# 输入你的数据库密码

mysql> source /root/dbdump.db;

mysql> \q

[root@localhost ~]# vi /etc/my.cnf

# 编辑 mysql 配置文件,在 [mysqld] 节段添加如下配置:

# server-id=2

# 重启 mysql 服务

[root@localhost ~]# /etc/init.d/mysqld restart

# 配置主信息

[root@localhost ~]# /usr/local/mysql/bin/mysql -u root -p

# 输入你的数据库密码

mysql> change master to

> master_host='192.168.56.2',

> master_user='root',

> master_password='your password for root',

> master_log_file='your_log_file',

> master_log_pos='your_log_file_position';

mysql> -- 开启从复制线程

mysql> start slave;

在主机器 mysql 进行操作,查看从机器 mysql 对应库有无相应变化。

指导文档

https://dev.mysql.com/doc/refman/5.7/en/replication-configuration.html

潦草拙笔,错误和不当之处,还望不吝赐教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值