MYSQL数据库的主从配置

主从复制原理

其实就是集群: 1. 负载均衡 2.数据迁移

实现主从同步(主从复制):

  1. master将改变的数据,记录在本地的二进制日志文件(binary log);该过程称之为:二进制日志事件
  2. slave将mater的binary log 拷贝到自己的relay log(中继日志文件)中
  3. 中继日志事件,将数据读取到自己的数据库之中
    在这里插入图片描述
    MYSQL的主从复制,是异步的,串行化的,有延迟的
    master (1):slave (n)
配置步骤( 5.6版本)
配置环境: windows(mysql: my.ini) linux(mysql: my.cnf) 

一mysql实例在windows系统上,另一个mysql实例在linux系统上

windows主机  linux从机

配置前,为了无误,现将权限(远程访问),防火墙等处理:

一、关闭windows/ linux 防火墙: 
		1)windows 右键“网络”: 
		2)linux:service iptables stop 
	
二、Mysql允许远程连接(windows/linux):
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;(5.6)
FLUSH PRIVILEGES;

三、文件配置---主机(以下代码和操作全部在windows中操作):
找到 my.ini 文件添加以下
[mysqld] 
# id
server-id=1
# 二进制日志文件 一般放在data目录下
log-bin=""
# 错误记录文件
log-error=""
# 主从同步时,忽略的数据库
binlog-ignore-db=mysql
# (可选)指定主从同步时,同步哪些数据库
binlog-do-db=test

windows中的数据库授权哪台计算机的数据库是自己的从数据库:
GRANT REPLICATION slave,reload,super ON *.* TO 'root'@'192.168.52.%' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;

查看主计算机的状态 ---》 记录 File Position的文件状态
每次在做主从同步前。需要观察主机状态的最新值便以从机使用(master_log_file master_log_pos 主机状态的最新值)
show master status;


从机(以下代码和操作全部在linux中操作):
找到my.cnf文件
# id
server-id=1
# 二进制日志文件 一般放在data目录下
log-bin=""
replicate-do-db=test

linux中的数据库授权哪台计算机中的数据库是自己的主计算机(master_log_file master_log_pos 主机状态的最新值)
CHANGE MASTER TO 
MASTER_HOST = '192.168.52.1',
MASTER_USER = 'zenghongji',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
master_log_file = 'mysql-bin.000001',
master_log_pos=909;

如果报错: this operation cannot be performed with a running salve; run stop slave first;
解决: STOP SLAVE;
再次执行上条语句

开启主从同步:
 从机linux: start slave
 检查:show slave status \G 
 主要观察:slave_IO_Running和slave_SQL_Running都是 yes即可
 如果不都是yes则看下方的日志
 在主从中分别查看serverid: show variables like '%server_id%';
 配置文件不行,则通过全局变量设置
 stop slave;
 set global server_id = 2;
 start slave;
配置步骤(8.0版本)
mysql主从复制步骤 两台虚拟机的mysql
1.主服务器配置:
vi /etc/my.cnf 新增以下内容
[mysqld] 
server_id=177 ###服务器id
log-bin=mysql-bin ###开启日志文件
binlog-ignore-db=mysql #不参与主从的数据库名,不参与主从复制的数据库名mysql
binlog-do-db = test #需要备份数据,多个请另起一行设置binlog_do_db=需要同步的数据库名称,不写全部都备份

重启mysql服务
systemctl restart mysqld
主服务器给从服务器账号授权
进入mysql
mysql -u root -p

一般不用root帐号 随意账号 给从服务器对应
要先创建再授权
create user 'snipe'@'%' identified WITH mysql_native_password by '123456'; (创建用户)
GRANT REPLICATION SLAVE ON *.* to 'snipe'@'%' ; (用户授权)
授权使用的数据库等等权限
grant all privileges on *.* to 'snipe'@'%' with grant option;
flush privileges; 刷新
登录主服务器的mysql,查询master的状态
show master status;
记录下:
	File : mysql-bin.000001
    Position : 909

2. 从服务器配置
[mysqld] 
server_id=2 ###服务器id
log-bin=mysql-bin ###开启日志文件
replicate-do-db=test
重启服务器
systemctl restart mysqld
进入mysql
mysql -u root -p

stop slave;
授权哪台计算机中的数据库是自己的主计算机(MASTER_HOST:主机的IP, MASTER_USER: 主机授权的账号, MASTER_USER: 主机授权的账号密码, master_log_file : 文件名称, Position: 文件起始位置)
CHANGE MASTER TO 
MASTER_HOST = '192.168.52.1', 
MASTER_USER = 'zenghongji',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
master_log_file = 'mysql-bin.000001',
master_log_pos=909;

start slave;
检查从服务器复制功能状态
SHOW SLAVE STATUS \G
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
完成!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ShardingSphere:SpringBoot2+MybatisPlus+读写分离+分库分表课程目标快速的掌握读写分离+分表的实战,即插即用适用人群IT从业人员,开发人员,Java从业者,互联网从业者,性能调优人群课程简介ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈。它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成,shardingSphere定位为关系型数据库中间件。 Sharding-JDBCSharding-JDBC是Sharding-Sphere的第一个产品,也是Sharding-Sphere的前身,是当当网开源的一个产品。定位为轻量级的Java框架,在Java的JDBC层提供额外服务。 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。他们均提供标准化的数据分片、读写分离、柔性事务和数据治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。Sharding-JDBC可以通过Java,YAML,Spring命名空间和Spring Boot Starter四种方式配置,开发者可根据场景选择适合的配置方式。课程特色 本章节以尽量短的时间,为使用者提供最简单的ShardingSphere的快速入门。课程说明该课程属于系列课程,分为读写分离,分库不分表,不分库分表,分库分表,读写分离+分库分表共5个回合。本课程属于其中一个回合,请各位小哥哥们注意,课程的标题哦~

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值