MySQL主从服务

目录

一、优点:

二、主从复制的原理:

三、主从复制的过程:

四、构建思路:

五、主节点配置过程:

六、在第二台搭建从数据库

七、验证


一、优点

1.进行备份 保障数据的安全

2.可以缓解主库的压力  主库写入数据  从库读取数据   一个主最多可以有八个从

二、主从复制的原理:

  主节点会将新插入的数据,写入到bin-log(二进制)日志中,然后生成一个i/o线程,将二进制日志传递到从节点上,从节点负责接收的是i/o线程,i/o将数据传递到relay-log(中继)日志中,从节点将会生成一个sql线程,从中继日志中读取数据,进行写入到从节点上sql线程作用是从中继日志中读取内容i/0线程的传递二进制日志的

三、主从复制的过程:

  从节点将会主动向主节点获取数据,从节点将会生成一个i/o和sql线程,主节点将会生成一个dump线程,其中的i/o线程负责去bin-log日志中去读取内容,将二进制日志传递到从节点上,从节点负责接收的是i/o线程,i/o将数据传递到relay-log(中继)日志中,从节点将会生成一个sql线程,从中继日志中读取数据,进行写入到从节点上。

四、构建思路

  1.配置主服务器:启动binlog日志,授权用户,查看binlog日志信息

  2.配置从服务器:设置server_id,确保与主服务器数据一致,制定主库信息,启动slave程序,查看状态信息

五、主节点配置过程:

1.关闭selinux,防火墙

[root@server1 ~]# setenforce 0  临时关闭
[root@server1 ~]# systemctl stop firewalld.service 

2.修改MySQL配置文件

[root@server1 ~]# vim /etc/my.cnf 

[mysqld]
server_id=40        
log_bin=server1   #节点标识  开启二进制日志

 [root@server1 ~]# systemctl restart mysqld    重启MySQL服务

3.进入MySQL添加用户(作用:从服务器拷贝命令时,连接主服务器的用户。但MySQL8之后,只能先创建用户,在赋权)

mysql> create user "slave"@"%" identified by "FTT@sxz123"; 
mysql> flush privileges;
mysql> grant replication slave on *.* to "slave"@"%" ;
mysql> show master status; 查看binlog日志信息
+----------------+----------+--------------+------------------+------
| File           | Position | Binlog_Do_DB | Binlog_Ignore_DB | Execu
+----------------+----------+--------------+------------------+------
| server1.000001 |      858 |              |                  |      
+----------------+----------+--------------+------------------+------

解释:

grant 授权

replication slave 给从授权

on *.*所有的库下的所有的表

to "slave"@".%"   slave 这个用户  % 表示可以在任何一台电脑上登录,也可以指定某台电脑可以远程登录

六、在第二台搭建从数据库

 1.修改MySQL配置文件

[root@server2 ~]# vim /etc/my.cnf

[mysqld]
server_id=8

  [root@server1 ~]# systemctl restart mysqld    重启MySQL服务

 2.进入MySQL

mysql> change master to master_host="172.17.9.50",master_port=3306,master_user="slave",master_password="FTT@sxz123",master_log_file="servver1.000001",master_log_pos=858,get_master_public_key=1;

解释:

change master to    #接收授权

master_host="172.17.9.50",   #主上面的host

master_user="slave",   #主上面的授权用户

master_password="FTT@sxz123",  #密码

master_log_file="server1.000001",   #主的二进制文件名

master_log_pos=858;  #偏移值的量

原因是mysql8的密码方式采用的跟之前的不同,需要这么来使用就可以了在从库进行授权位置的时候添加参数:get_master_public_key=1,就可以了

mysql> start slave; 启动slave进程
mysql> show slave status\G  查看

 3.扩展如果不是这两个yes解决方法,进入MySQL

mysql> stop slave;
mysql> change master to master_host="172.17.9.50",master_user="slave",master_password="FTT@sxz123",master_log_file="server1.000001",master_log_pos=858;
mysql> start slave;
mysql> show slave status\G

七、验证

1.在主服务器中添加信息

mysql> create database ftt;
mysql> use ftt;
mysql> create table ftt.user(name char(10));
mysql> insert into ftt.user values("111");
mysql> insert into ftt.user values("222");
mysql> insert into ftt.user values("333");
mysql> insert into ftt.user values("444");
mysql> select * from ftt.user;
+------+
| name |
+------+
| 111  |
| 222  |
| 333  |
| 444  |
+------+

2.在从服务器中验证

mysql> use ftt;
Database changed
mysql> select * from ftt.user;
+------+
| name |
+------+
| 111  |
| 222  |
| 333  |
| 444  |
+------+

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值