Mysql读写分离操作
环境:两台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线程
- 当客户端发器insert操作,操作的master库(事务)由master服务将sql语句转为二进制,存储到二进制日志文件中,然后执行commit 操作,将事务结果存储到master 库当中。
- slave 开通一个io线程,线程阻塞等到,监听二进制文件是否有改变,如果有的,读取到中继器当中,
- sql线程会定期查看中继器中的内容,然后重演,将改变写入slave库当中。