环境:两台centos环境,安装mysql(mariadb)

web网站的优化:

  • 缓存技术 数据库缓存 redis
  • 文件缓存 图片 fastdfs
  • 负载均衡 nginx
  • 数据库主从备份,读写分离

图解:

在工作中,为了防止数据损坏,使用主从备份这种架构(复制集),为了满足mysql的性能要求,为了提高吞吐量使用复制集之后还可搭建读写分离去提高性能。



搭建主从

在master(主机名) 和slave(从机名) 都需要操作安全向导

mysql_secure_installation



systemctl restart mariadb 重启服务

mysql -u root -p 使用密码登陆

关闭主从防火墙和安全模式

systemctl stop firewalld
setenforce 0

slave 操作

systemctl restart mariadb
mysql -uroot -p
create database OurBlog charset=utf8;
exit
将刚导入的sql文件导入到salve库中
mysql -h localhost -u root -p111111 OurBlog < /opt/OurBlog.sql

修改配置文件

  • master配置文件

    • vi /etc/my.cnf
      增加代码
      server-id=1
      log_bin=mysql-bin?
      binlog-do-db=OurBlog
      binlog-ignore-db=mysql
      保存文件
      重启 mariadb

  • slave修改

    修改配置文件
    vi /etc/my.cnf
    增加下面代码
    server-id=2
    log_bin=mysql-bin?
    binlog-do-db=OurBlog
    binlog-ignore-db=mysql
    保存
    重启

-Salve 配置

change master to master_host="10.10.14.154",master_user="root",master_password='111111',master_log_file="mysql-bin?.000001",master_log_pos=245;

-Slave 库当中

数据库当中
slave start 开始备份
show slave status \G

-salve库当中


查看slave 状态
show slave status \G
停止slave
stop slave; 开启slave
start slave 查看master 状态
show master status;

在 master中写入数据,然后在slave中查看数据

  • Master 主库 slave 从库
  • binary log 二进制文件。relay log 中继器日志
  • I/O线程,sql线程
  1. 当客户端发器insert操作,操作的master库(事务)由master服务将sql语句转为二进制,存储到二进制日志文件中,然后执行commit 操作,将事务结果存储到master 库当中。
  2. slave 开通一个io线程,线程阻塞等到,监听二进制文件是否有改变,如果有的,读取到中继器当中,
  3. sql线程会定期查看中继器中的内容,然后重演,将改变写入slave库当中。

Mysql读写分离操作的更多相关文章

  1. Mysql读写分离操作之mysql-proxy

    常见的读写方式 基于程序代码内部实现 在代码中根据select.insert进行选择分类:这类方法也是生产常用的,效率最高,但是对开发人员比较麻烦.架构不能灵活调整 基于中间件的读写分离: mysql ...

  2. amoeba实现MySQL读写分离

    amoeba实现MySQL读写分离 准备环境:主机A和主机B作主从配置,IP地址为192.168.131.129和192.168.131.130,主机C作为中间件,也就是作为代理服务器,IP地址为19 ...

  3. PHP代码实现MySQL读写分离

    关于MySQL的读写分离有几种方法:中间件,Mysql驱动层,代码控制 关于中间件和Mysql驱动层实现Mysql读写分离的方法,今天暂不做研究, 这里主要写一点简单的代码来实现由PHP代码控制MyS ...

  4. 转:Mysql读写分离实现的三种方式

    1 程序修改mysql操作类可以参考PHP实现的Mysql读写分离,阿权开始的本项目,以php程序解决此需求.优点:直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配缺点:自 ...

  5. mysql读写分离总结

    随着一个网站的业务不断扩展,数据不断增加,数据库的压力也会越来越大,对数据库或者SQL的基本优化可能达不到最终的效果,我们可以采用读写分离的策略来改变现状.读写分离现在被大量应用于很多大型网站,这个技 ...

  6. ProxySQL实现Mysql读写分离 - 部署手册

    ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎.ProxySQL是用C++语言开发的,也是percona推的一款中间件,虽然也是一个轻量级产品,但性能很好(据测试,能处理千亿级的数 ...

  7. mysql读写分离[高可用]

    顾名思义, 在mysql负载均衡中有多种方式, 本人愚钝,只了解驱动中间件和mysql_proxy两种方式, 对于驱动,利用的是ReplicationDriver,具体请看远哥的这篇文章: MySQL ...

  8. mysql读写分离 主从同步

    MySQL主从复制与读写分离的实现 转载 2013年01月17日 18:20:12   MySQL主从复制与读写分离 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy) ...

  9. Mysql读写分离-Amoeba Proxy

    参考:http://www.linuxidc.com/Linux/2015-10/124115.htm 一个完整的MySQL读写分离环境包括以下几个部分: 应用程序client database pr ...

随机推荐

  1. 【oracle】存储过程:将select查询的结果存到变量中

  2. 使用ES6 Class封装的IndexDB 操作类,并实现模糊搜索

     封装如下: indexDBOperate.js export class IndexDBOperate { db = null // 数据库实例 databaseName = null // 数据库 ...

  3. DIV+CSS+JS实现色彩渐变字体

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  4. 拒绝后门程序-Alibabaprotect和AliPaladin

    详细参考帖子及评论区:流氓进程AlibabaProtect的删除[程序员吧]_百度贴吧 首先打开服务找到AlibabaProtect,然后找到他的位置(C:\Program Files (x86)\A ...

  5. uniApp上传图片

    项目中用到了上传图片的功能,记录一下.增强记忆. 要上传图片首先就要先选择图片,或者是先拍照,此时先调用的是 chooseImage 接口,此接口可选择拍照也可以从相册中选择. 它有几个参数,具体可以 ...

  6. python实现的WebSocket客户端

    code #coding=utf- import json import time from websocket import create_connection ws = create_connec ...

  7. 表单只有一项 input 时按回车键会提交表单

    在 Vue 中 使用 Element UI,使用表单  el-form 只有一个  el-input  项,使用  @keyup.enter.native 来处理回车事件. 结果发现按下回车时页面总会 ...

  8. Collection和Collections有什么区别?

        本文链接:https://blog.csdn.net/xiangyuenacha/article/details/84237663 1.java.util.Collection 是一个集合接口 ...

  9. kubeadm部署K8S集群v1.16.3

    本次先更新kubeadm快速安装K8S,二进制安装上次没写文档,后续更新,此次最新的版本是V1.16.3 1.关闭防火墙.关闭selinux.关闭swapoff -a systemctl stop f ...

  10. 【操作系统之十四】iptables扩展模块

    1.iprange 使用iprange扩展模块可以指定"一段连续的IP地址范围",用于匹配报文的源地址或者目标地址.--src-range:匹配报文的源地址所在范围--dst-ra ...