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

web网站的优化:

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

图解:

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

Mysql读写分离操作 Mysql 第1张
Mysql读写分离操作 Mysql 第2张

搭建主从

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

mysql_secure_installation

Mysql读写分离操作 Mysql 第3张
Mysql读写分离操作 Mysql 第4张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
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

Mysql读写分离操作 Mysql 第5张

  • slave修改

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

    Mysql读写分离操作 Mysql 第6张

-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;

Mysql读写分离操作 Mysql 第7张

-Slave 库当中

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

Mysql读写分离操作 Mysql 第8张

-salve库当中


查看slave 状态
show slave status \G
停止slave
stop slave;

开启slave
start slave

查看master 状态
show master status;

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

Mysql读写分离操作 Mysql 第9张

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