使用场景mysql
在高并发场景中涉及到数据库频繁查询和插入、修改数据时,若不作读写隔离,单服务器上的数据库负载过大,因为频繁的链接数据库,频繁地释放链接资源,致使执行效率缓慢。为了给数据库减压,咱们须要为数据库作负载,此时只须要作读写隔离便可,不涉及分库分表。
设备环境sql
须要至少两台安装MySql-5.6.41的MySql数据库的服务器,一台作主数据库,主要负责写操做,另外一台作从数据库,主要负责读操做。 Master系统环境:Windows 十、MySql-5.6.41的MySql数据库、Ip地址:192.168.199.106 Slave 系统环境:Windows 十、MySql-5.6.41的MySql数据库、Ip地址:192.168.199.134
读写隔离条件数据库
依赖于log_bin日志进行主从数据库数据同步,在配置my.ini配置中开启log_bin日志时要检查是否能正常开启log_bin日志,若是未开启log_bin日志,应当先开启而后再进行如下步骤配置(很是重要),不然读写隔离配置不成功,可查看文章进行log_bin日志开启: https://my.oschina.net/u/4061880/blog/2997297
# 开启log_bin日志;mysql-bin为日志的名称,可自定义 log_bin= mysql-bin #须要备份的数据库,多个使用英文逗号隔开 binlog_do_db=ad #不须要备份的数据库,多个使用英文逗号隔开 binlog_ignore_db=mysql #服务Id,不可与其余service重复 server_id = 1
注意:binlog_do_db用于指定须要同步的数据库,binlog_ignore_db指定不须要同步的数据库,若是这两个参数都不设置,则从服务器会复制主服务器的全部数据库。安全
关闭mysql服务: net stop mysql 开启mysql服务: net start mysql
使用管理员打开cmd 命令行模式,切换到mysql的bin目录。 3.一、建立用户: create user 'root'@'192.168.199.134' identified by '123456'; 其中root是用于slave链接master的帐户,192.168.199.134是slave的ip,123456是建立链接的密码,密码可自定义。 3.二、授予权限:grant replication slave on *.* to 'root'@'192.168.199.134' identified by '123456'; 3.三、刷新权限:flush privileges; 也可重启Mysql服务
master主数据库配置已完成;须要记住 File的值和Position的值,配置Slave数据库时须要用到!!!!服务器
#与其余service不重复 server_id = 2 #同步Master的数据库到Slave的哪个数据库 replicate-do-db=ad
关闭mysql服务: net stop mysql 开启mysql服务: net start mysql
3.一、执行 stop slave 禁用slave 3.二、执行 change master to master_host=' 192.168.199.106',master_user='root',master_password='123456',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=120; [注意: 一、其中 master_host 是主数据库IP 二、master_user 是主数据库中在mysql库的user表中加入的容许slave从数据库用于访问master数据库的用户名 三、master_password 是主数据库中在mysql库的user表中加入的容许slave从数据库用于访问master数据库的密码 四、master_port 是主数据库暴露给slave数据库的端口(若是slave数据库连不上master数据库。就要在主数据服务器防火墙中开放端口) 五、master_log_file 是主数据库 执行 show master status后获得的file标识文件名。是配置log-bin后生成的中间日志文件。用于主从复制 六、master_log_pos 是主数据库 执行 show master status后获得的position文件标识位。用于主从复制] 3.三、执行 start slave 启用slave
查看 Slave_IO_Running = Yes;Slave_SQL_Running=Yes 二者是否都等于Yes。则表示主从复制搭建成功。若是Slave_IO_Running = Connecting则说明master得3306端口未开放。需在master服务器的防火墙中配置。并发
4.一、若是Slave_IO_Running 的值一直为connecting则说明master的端口可能被屏蔽了,须要打开端口。若是主master的端口是不能被外网访问的话,slave是连不上的。所以须要将master的端口暴露给slave访问。 4.二、开启3306端口 进入控制面板-系统和安全-Windows防火墙。选择左边栏的高级设置。
而后点入站规则
进入入站规则后点击右边新建规则
选择要建立的防火墙的类型,这里选择端口
填写端口3306
容许链接
最后随便填写一个规则名称就完成了。