1.MYSQL主从配置的作用:

可以实现从数据库与主数据库的数据和结构保持一致,主发生变化,从会跟着变化。

2.MYSQL主从配置的前提:

主数据库的库与从数据库的数据结构,在配置前需要一致,可以都为空,也可以数据结构一致。

3.MYSQL内置的主从机制的原理:

第一步:master记录二进制日志。在每个事务更新数据完成之前,master在二进制日志记录这些改变。MySQL将事务写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。

第二步:slave将master的binary log拷贝到它自己的中继日志。首先,slave开始一个工作线程——I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经执行完master产生的所有文件,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。

第三步:SQL slave thread(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重新执行其中的事件而更新slave的数据,使其与master中的数据一致。

4.MYSQL主从常见架构:

1)一主多备

2)M-S(中继)-S

3)互为主备:向主或从数据库插入数据,主从数据库都会保持一致,即这种架构从数据库也可以进行写操作。

5.一主多备配置:

1)先在两台服务器上准备2个数据结构都一致的数据库:

①可以数据结构都为空

②主数据库若有数据和结构,则通过mysqldump命令同步

主库导出:mysqldump -uroot -proot -B hotel>hotel.sql  # -B参数会把数据库导出,并且生成建库语句;

把hotel.sql传到从库的服务器:scp hotel.sql root@192.168.5.12:/root

从库导入:mysql -uroot -proot <hotel.sql

2)  在主库中授权允许从库登录的账号:

mysql> grant replication slave on *.* to slave1@192.168.5.11  identified by "123456";

3)修改主库配置文件/etc/my.cnf,添加以下项:

log-bin=mysql-bin-master  #启用二进制日志,这个值就是二进制日志文件名的前缀

server-id=1   #本机数据库ID 标示

binlog-do-db=hotel #可以被从服务器复制的库, 二进制需要同步的数据库名

binlog-ignore-db=mysql  #不可以被从服务器复制的库

4)重启主库:

#systemctl restart mariadb(或mysqld)

5)查看主库master状态:

mysql> show master status;

6)查看主库二进制日志事件:

mysql> show master status;

7)修改从库配置文件/etc/my.cnf,添加以下项:

server-id = 2 #从库ID

8)重启从库:

#systemctl restart mariadb

9)向从库添加主库配置:

mysql>stop slave;    #停止slave

mysql> change master to master_host='10.10.10.63',master_user='slave',master_password='123456';

mysql> start slave;    #启动slave

10)查看从库slave状态:

mysql> show slave status\G  查看状态

Slave_IO_Running :一个负责与主机的io通信

Slave_SQL_Running:负责自己的slave mysql进程

两个为YES 就成功了!

11)向主库测试插入数据,从库也能查到这条数据。

6.互为主备配置:

在上面第5点的基础上,反着做一遍配置即可。

由此可见,mysql数据库内置有2个角色,一个master,一个slave

7.M-S(中继)-S配置:

环境:

XUEGOD68   master        mysql5.7.20     10.10.10.68

XUEGOD69   slave中继   mysql5. 7.20     10.10.10.69

XUEGOD70   slave          mysql5. 7.20    10.10.10.70

首先确保3个库的数据结构一致:

导出主服务器HA库完整备份, 拷贝到 中继服务器 slave服务器

[root@xuegod68 ~]# mysqldump -uroot -p123456 -B HA>ha.sql

[root@xuegod68 ~]# scp ha.sql 10.10.10.69:/root

[root@xuegod68 ~]# scp ha.sql 10.10.10.70:/root

[root@xuegod69 ~]# mysql uroot p123456 <ha.sql

[root@xuegod70 ~]# mysql uroot p123456 <ha.sql

部署master---->XUEGOD68:

1)在主库上授权用户:

mysql> grant replication slave on *.* to repl@'10.10.10.%' identified by '123456';

mysql> flush privileges;

2)修改主库配置文件:

[root@xuegod68 ~]# vim /etc/my.cnf   #修改配置 增加以下选项

server-id=1

binlog-do-db=HA

log-bin=mysql-bin-master

binlog-ignore-db=mysql

sync-binlog=1

binlog-format=row

3)重启主库

[root@xuegod68 ~]# systemctl restart mysqld

部署slave中继------> XUEGOD69

1)授权一个用户给slave(xuegod70):

mysql> grant replication slave on *.* to 'repl'@'10.10.10.70' identified by '123456';

mysql> flush privileges;

2)配置my.cnf

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

server-id= 2

#修改主配置文件也要开启bin-log

log-bin=mysql-bin-slave1

log-slave-updates=1   #把它从relay-log当中读取出来的二进制日志并且这本机上执行的操作也记录这自己的二进制日志里面,这样才能使第三台slave通过中继slave读取到相应数据变化

binlog-format=row

3)重启服务:

[root@xuegod69 ~]# systemctl restart mysqld

4)授权主库配置:

mysql> stop slave;

mysql> change master to master_host='10.10.10.68',master_user='repl',master_password='123456';

mysql> start slave;

查看中继服务的状态

mysql> show slave status \G

部署slave------>xuegod70

1)配置my.cnf

server-id = 3

log-bin=mysql-bini-slave2

binlog-format=row

2)重启服务

[root@xuegod70 ~]# systemctl restart mysqld 重启

3)指定slave中继服务作为xuegod70的主:

mysql> stop slave;

mysql> change master to master_host='10.10.10.69',master_user='repl',master_password='123456';

mysql> start slave;

查看从服务的状态

mysql> show slave status \G

从master上插入数据测试:

mysql> insert into test values (1,'AA');

Query OK, 1 row affected (0.09 sec)

然后分别在slave中继,与slave上查看

中继服务器可以仅仅起到一个分发主库日志的作用,而不存储数据:

修改表的引擎:

mysql> alter table t1 ENGINE=blackhole; (先关闭日志记录再修改set sql_log_bin=off)

linux服务-mysql主从配置相关推荐

  1. windows下mysql和linux下mysql主从配置

    1. linux下mysql安装版本5.6   windows下mysql版本5.7  不要问我为什么版本不一致  就是想这么搞 2. linux为主服务器   windows为从服务器 3.找到li ...

  2. Linux下mysql主从配置

    mysql服务器的主从配置,这样可以实现读写分离,也可以在主库挂掉后从备用库中恢复 需要两台机器,安装mysql,两台机器要在相通的局域网内 主机A: 192.168.1.100 从机B:192.16 ...

  3. MySql(18)——Linux MySQL主从配置

    MySQL 主从配置 Author:xushuyi 参照技术:http://www.cnblogs.com/kevingrace/p/6256603.html 1. 主从数据库 1.主库:192.16 ...

  4. linux下安装mysql和mysql主从配置

    参考: http://blog.csdn.net/geek87/article/details/10090637 http://www.cnblogs.com/wanghetao/p/3806888. ...

  5. Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  6. mysql主从配置 简书_Mysql主从配置,实现读写分离-Go语言中文社区

    转载:https://www.cnblogs.com/alvin_xp/p/4162249.html 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层 ...

  7. mysql主从配置访问_Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  8. mysql主从配置实现_MySQL主从配置实现

    //MySQL主从配置 首先,两边都要安装MySQL,启动两边的MySQL 接着,配置主从,要保证主从数据都一样的 可以用rsync弄过去 在主上配置/etc/my.cnf server-id=1 l ...

  9. 黄聪mysql_黄聪:Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  10. mysql主从配置流程

    一.mysql主从配置原理 1.master将操作记录写到二进制日志中(binary log)中: 2.slave IO 线程将master的binary log events读写到它的中继日志(re ...

最新文章

  1. 袁哥写的漏洞研究方法总结
  2. 成都铁路警方联合多部门开展反恐防暴演练
  3. java开发数据库属于后端吗_JavaWeb后端开发,数据库知识需要掌握到何种程度?...
  4. html怎么设置数据条的颜色,jQuery EasyUI 数据网格 – 条件设置行背景颜色 | 菜鸟教程...
  5. sql出现列名无效的原因_学会SQL并不难,小白学习记录之二(简单查询)
  6. C++自学24:唯一智能指针(make_unique/unique_ptr/reset/release/get/13.1)
  7. OpenCV:使用python-cv2实现Harr+Adaboost人脸识别
  8. aidl远程服务调用Android,报错:Process 'command 'F:\Android\SDK\build-tools\29.0.0\aidl.exe''
  9. Failed to connect to database. Maximum number of connections to instance exceeded
  10. react-native打包Android apk
  11. 关于计算机课的课后感受,计算机课心得体会范文
  12. 瑞科生物通过聆讯:9个月亏损超5亿 君联与红杉是股东
  13. 地震勘探 01:地震波001
  14. MT7620设置GPIO输入中断
  15. 数据分析过程中,我们常犯的错误有哪些?
  16. IDEA 2021 没有Allow parallel run
  17. 【夸夸其谈】浅谈rogue元素在商业手游的运用
  18. FOC电机控制,出售一份基于国产M0核MCU平台
  19. 【面试流水账】一年半经验前端年底求职路
  20. Python pdf 去水印

热门文章

  1. 元数建模工具chiner
  2. CSS文本框里的字_把网站搬进PPT里是种怎样的体验?
  3. 千兆以太网(二)——MDIO接口协议
  4. 强制删除“无法删除文件/文件夹”方法全集合
  5. DEFCON 23|利用U盘60秒打开保险柜
  6. 通讯录管理系统(C++基础 汇总案例)
  7. slic3r prusaslicer编译
  8. 超像素经典算法SLIC的代码的深度优化和分析
  9. C# 按块选择 autoCAD二次开发
  10. did拼接屏最小拼缝0.88mm