网站后台如何更换在线qq咨询代码,顺义电大网上作业在那个网站做,做网站推广有效果吗,朝阳区网站建设1.理解MySQL主从复制原理。
复制是MySQL提供的一直高可用、高性能的解决方案#xff0c;一般用来建立大型的应用#xff0c;总体来说#xff0c;分为以下三步#xff1a; (1)master将改变记录到二进制日志(binary log)中#xff08;这些记录叫做二进制日志事件#x…1.理解MySQL主从复制原理。
复制是MySQL提供的一直高可用、高性能的解决方案一般用来建立大型的应用总体来说分为以下三步 (1)master将改变记录到二进制日志(binary log)中这些记录叫做二进制日志事件binary log events (2)slave将master的binary log events拷贝到它的中继日志(relay log) (3)slave重做中继日志中的事件将改变反映它自己的数据。
2.完成MySQL主从复制。 1.在主服务器master上
启用二进制日志
选择一个唯一的server-id
创建具有复制权限的用户
2.在从服务器slave上
启用中继日志二进制日志可开启也可不开启
选择一个唯一的server-id
连接至主服务器并开始复制 1设置server-id值并开启binlog参数
[mysqld]
log-bin mysql-bin
server_id 1 停止数据库# systemctl stop mysqld
启动数据库#systemctl start mysqld
show variables like %log_bin%; 可见log-bin 开
2建立同步账号
mysql grant replication slave on *.* to rep192.168.95.% identified by123456; mysql show grants for rep192.168.95.%; 3锁表设置只读
为后面备份准备注意生产环境要提前申请停机时间
mysql flush tables with read lock; 提示如果超过设置时间不操作会自动解锁。
mysql show variables like%timeout%; 测试锁表后是否可以创建数据库
4查看主库状态
查看主库状态即当前日志文件名和二进制日志偏移量
mysql show master status; 5备份数据库数据
# mysqldump -uroot -p -A -B |gzip /backup/mysql/mysql_bak.$(date %F).sql.gz 6解锁
mysql unlock tables; 7主库备份数据上传到从库
scp mysql_bak.2021-01-26.sql.gz 192.168.83.134:/tmp 从库上设置
1设置server-id值并关闭binlog参数 停止数据库# systemctl stop mysqld
启动数据库#systemctl start mysqld
2还原从主库备份数据
# cd /server/backup/
# gzip -d mysql_bak.2015-11-18.sql.gz
# mysql -uroot -p mysql_bak.2015-11-18. sql检查还原
# mysql -uroot -p -e show databases; 3设定从主库同步 4启动从库同步开关
mysql start slave; 检查状态show slave status\G 3.完成MySQL读写分离配置
Mycat实现MySQL主从复制读写分离
MyCAT的安装及部署
链接https://pan.baidu.com/s/16Z7NFKuL2WX8b1ZKpk9AwA 提取码yang
1、部署jdk环境MyCAT用Java开发需要有JAVA运行环境mycat依赖jdk1.7的环境 rpm -ivh jdk-8u144-linux-x64.rpm 测试 : java -version 2、安装Mycat
链接https://pan.baidu.com/s/1bkDv1WkwXXr2YzBtvCRY8w 提取码yang tar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/ 3添加环境变量 export PATH$PATH:/usr/local/mycat/bin [rootlocalhost mycat]# source /etc/profile.d/mycat.sh 当前生效 3、读写分离配置
1不使用Mycat托管MySQL主从服务器简单使用如下配置
#注意配置前备份下配置文件
先做一个备份吧 打开
vim schema.xml
(1)schema nameTESTDBcheckSQLschemafalsesqlMaxLimit100dataNodedn1 这里的TESTDB就是我们所宣称的数据库名称必须和server.xml中的用户指定的数据库名称一致。添加一个dataNodedn1是指定了我们这个库只有在dn1上没有分库。
(2)dataNode namedn1dataHostlocalhost1databasedb1 /
这里只需要改database的名字就是你真是的数据库上的数据库名可根据自己的数据库名称修改。 (3) dataHostnamelocalhost1maxCon1000minCon10balance1writeType0dbTypemysqldbDrivernativeswitchType1slaveThreshold100 balance
1、balance0不开启读写分离机制所有读操作都发送到当前可用的writehostle
.2、balance1全部的readhost与stand by writeHost 参与select语句的负载均衡。简单的说双主双从模式(M1-S1,M2-S2并且M1和M2互为主备)正常情况下M1S1S2都参与select语句的复杂均衡。
3、balance2所有读操作都随机的在readhost和writehost上分发
writeType负载均衡类型目前的取值有3种
1、writeType0, 所有写操作发送到配置的第一个writeHost。
2、writeType1所有写操作都随机的发送到配置的writeHost。
3、writeType2不执行写操作。
switchType
1、switchType-1表示不自动切换
2、switchType1默认值自动切换
3、switchType2基于MySQL 主从同步的状态决定是否切换
datahost其他配置
dataHost namelocalhost1maxCon1000minCon10balance1writeType0dbTypemysqldbDrivernativeswitchType1
maxCon1000最大的并发连接数
minCon10mycat在启动之后会在后端节点上自动开启的连接线程
tempReadHostAvailable1
这个一主一从时1个writehost1个readhost时可以开启这个参数如果2个writehost2个readhost时
heartbeatselect user()/heartbeat 监测心跳
(4)写与读 4、创建管理用户
grant insert,delete,update,select on db1.* to mycat192.168.83.% identified by 123456; 收回权限
revoke INSERT, UPDATE, DELETE ON school.* from mycat192.168.83.%; 配置基本完成