欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mysql读写分离操作

程序员文章站 2023-01-22 19:11:35
环境:两台centos环境,安装mysql(mariadb) web网站的优化: 缓存技术 数据库缓存 redis 文件缓存 图片 fastdfs 负载均衡 nginx 数据库主从备份,读写分离 图解: 在工作中,为了防止数据损坏,使用主从备份这种架构(复制集),为了满足mysql的性能要求,为了提 ......

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

web网站的优化:

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

图解:

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

Mysql读写分离操作
Mysql读写分离操作

搭建主从

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

mysql_secure_installation

Mysql读写分离操作
Mysql读写分离操作

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读写分离操作

  • slave修改

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

    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;

Mysql读写分离操作

-slave 库当中

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

Mysql读写分离操作

-salve库当中

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

开启slave
start slave

查看master 状态
show master status;

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

Mysql读写分离操作

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