mysql读写分离
在web网站开发当中,网站优化是一门高深的学问:主要可以用到两个方面的技术:
1,缓存技术——》数据库缓存,文件缓存,雪碧图
2,负载均衡技术——》数据库的主从备份(读写分离)
在日常工作当中,可能遇到同样一个数据库,有的表查询频繁,比如文章表,信息表,有的表插入频繁,比如注册表。用同一台mysql服务器完成大量的查询和插入事务,效率较低,于是就需要使用mysql的主从备份。
开始主从备份
以下命令中最后加引号的均在mysql中执行,其余均在root下执行。
1,互相测试ping通【服务端,客户端】
ping IP地址
2,在两台虚拟机中安装mariadb【服务端,客户端】
yum install mariadb mariadb-server -y
3,启动mariadb
systemctl start mariadb
4,配置mariadb的生产模式,默认yum安装的mariadb是一种宽松的开发模式,任何账号,不通过密码都可以进入。如果在生产环境需要开启生产模式,这个模式也是主从备份必须的,所以,两台虚拟机是都必须配置生产模式的(步骤是一致的)。【服务端,客户端】
mysql_secure_installation
5,重新启动mariadb
systemctl restart mariadb
6,进入数据库,创建要进行的备份数据库【服务端】
mysql -u root -p123——》进入数据库
create database ybw charset=utf8;——》创建数据库ybw
7,进行授权【服务端】
grant replication slave on *.* to "root"@"%" identified by '123' with grant option;
8,刷新授权表【服务端】
flush privileges;
9,创建备份表【服务端】
use ybw;——》使用数据库ybw
create table studert(id int primary key auto_increment,name char(32));——》创建学生表
10,数据库导出【服务端】
mysqldump -h localhost -u root -p123 ybw > ybw.sql
11,使用ssh服务将文件传递到另一虚拟机(客户端)的opt下【服务端】
scp ybw.sql root@10.10.21.127:/opt
12,在客户端上创建ybw数据库【客户端】
create database ybw charset=utf8;
13,将服务端上的数据库导入【客户端】
mysql -h localhost -u root -p123 ybw<ybw.sql
14,测试导入结果【客户端】
use ybw;
show tables;
15,关闭主从服务器的防火墙和selinux【服务端,客户端】
systemctl stop firewalld——》关闭防火墙
setenforce 0 ——》关闭selinux
16,修改配置文件【服务端】
vim /etc/my.cnf
17,保存退出,重启服务器【服务端】
systemctl restart mariadb
18,修改配置文件【客户端】
vim /etc/my.cnf
18,保存退出,重启服务器【客户端】
systemctl restart mariadb
19,查看主服务器的状态【服务端】
show master status;
20,开始备份【服务端】
change master to master_host='10.10.21.70',master_user='root',master_password='123',master_log_file='mysql-bin?.000001',master_log_pos=245;
21,启动备份【服务端】
slave start;
22,查看备份状态【服务端】
show slave status\G;
23,出现如上图所示为备份成功,出现no【服务器】
修改步骤:
1、停止备份: slave stop
2、退出mysql重新启动服务端和客户端的mysql: systemctl restart mariadb【服务器,客户端】
3、开始备份:slave start
24,测试主从备份的效果,主库插入数据【服务端】
show tables;
insert into student (id,name) value (1,"yuiu");
25,从库查看数据【客户端】
select * from student;
26,主从库搭建成功。