mysql主从架构

mysql数据库主从以及原理

主服务器负责写操作,从服务器负责复制。

主服务器需要开启一个二进制日志 二进制日志:所干的每一件事,都会记录到日志当中

从服务器:从主服务器上把biniog日志拿走。但是得在从服务器指定主服务器的地址是多少,才能在主服务器上拿走数据。 想要在主服务器上拿走日志,必须有主服务器开放的账号 并且有复制的权限。

主服务器增删改的操作写到binlog日志当中,从服务器根据主服务器提供的的账号。拿取binlog日志,到从服务器变成了relay log(日志一样,名字改了而已)进行重放()写道从服务器当中 从服务器上会开启两个进程

在这里插入图片描述
I/O线程:到主服务器上拉起数据的线程(取日志)
如果I/O线程出现问题:会显示no。基本上都是连接不上主服务器,可能是主服务器(master)的防火墙或(master)账号

SQL线程:进行重放(抄作业)的线程
出现问题:重放失败

例:主服务器执行create database test;语句,会被从服务器拿走执行一边(从服务器本地已经有了test数据库)。会报错,SQL进程会变no
如果创建数据库的时候执行这条语句mysql> create database if not exists HA;如果存在创建,不存在不创建。那么从服务器就不会dount
根据这两个线程出现的问题,来解决主从复制出现的问题

mysql数据库主从缺点从过多,主压力大
在这里插入图片描述

一种情况:
1、一个数据库有数据并添加一台实现主从关系

第一步将数据库数据导出

 - mysqldump -uroot -p123456 -B (单个数据库的名称) > HA.sql

或者

 - mysqldump -uroot -p123456 -A  > HA.sql

再把数据传输给第二台,使他们之间的数据保持一致

  1. 在主服务器上开启binlog日志
 [root@centos-1 ~]#vim /etc/my.cn

在这里插入图片描述
重启mysql

[root@centos-1 ~]# /etc/init.d/mysqld restart
mysql> grant replication slave on *.* to slave@'192.168.1.%' identified by '123456';

复制权限 账号名 允许在192.168.1.网段登录 账号密码

在从服务器上指定server-id

[root@centos-1 ~]# vim /etc/my.cnf 

在这里插入图片描述
重启mysql

生成服务启动脚本,要不MySQL重启不了

[root@cong11 ~]#  cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@cong11 ~]# chmod +x /etc/init.d/mysqld  

重启mysql

[root@centos7-2 ~]# /etc/init.d/mysqld restart

把主服务器导出的数据导入到数据库当中实现主从数据一致

[root@centos7-2 ~]# ls
HA.sql

导入

[root@centos7-2 ~]# mysql -uroot -p123456 < HA.sql

mysql: [Warning] Using a password on the command line interface can be insecure.

启动主从复制

登录从服务器的数据库,指定主服务器

指定主服务器IP 使用salve账号 密码
mysql> change master to master_host='192.168.1.10',master_user='slave',master_password='123456';
指定主服务器IP 使用salve账号 密码

开启主从复制(主服务器开启)

mysql> start slave; 

Query OK, 0 rows affected (0.01 sec)

查看状态(从)

mysql> show slave status\G;

在这里插入图片描述

主服务器查看状态**

mysql> show master status;

在这里插入图片描述

如果两台服务器的 事件位置不一样主从关系就会出错在这里插入图片描述
在这里插入图片描述

验证两台数据库是否实现主从

在主服务器进入HA数据库插入数据

mysql> use HA;
mysql> insert into student values(1,'y21')

去从服务器上查看刚插入好的数据库

mysql> select * from  HA.student;

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值