Mysql主从配置,实现读写分离

大型网站处理高并发问题,除了web实现分布式负载均衡。数据业务层、数据访问层,如果仅仅采用一台服务器,服务器压力会比较大,有可能导致服务器宕机,数据丢失等问题。如果仅仅依靠优化程序代码,带来的效果并不大,此时就可以采用搭建数据库集群的方式来解决高并发。

服务器:一台Master服务器(win server 2008R2 Standard),一台Slave服务器(win server 2008R2 Standard)

数据库集群描述:主服务器(Master)负责网站noquery操作,从服务器负责query操作。主从服务器利用MySQL的二进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。

一、前期准备:

在Master及Slave机器上分别安装好mysql数据库软件,并分别安装好所需读写分离的数据库实例,自行操作!

二、配置:

1.配置Master数据库:

修改mysql配置文件

# 数据库id,唯一
server-id = 1
# 二进制日志文件,必填项,否则不能同步数据;如果不取名字的话,会以计算机的名字加编号命名二进制文件;
log-bin=master-bin
log-bin-index=master-bin.index
# 需要同步的数据库,如果还需要同步其他库,继续添加,如果不写默认同步所有库。
# binlog-do-db=test
# 不需要同步的数据库
binlog-ignore-db=mysql
保存文件后重启mysql服务

在Master MySQL上创建一个用户‘dev’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

1) mysql>create user dev; //创建新用户
2) # dev用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。说明一下192.168.0.%,这个配置是指明dev用户所在服务器,这里%是通配符,表示192.168.0.0-192.168.0.255的Server都可以以dev用户登陆主服务器。
3) mysql> GRANT REPLICATION SLAVE ON *.* TO 'dev'@'192.168.0.%' IDENTIFIED BY 'mysql';

授权root用户可以远程访问本机mysql数据库。或者使用Navicat软件连接本机mysql,点击用户按钮,添加root远程用户,授权后也可以达到相同效果。

5) 然后在mysql命令行界面,运行命令:

show master status;
查看主数据库的日志文件名称及当前日志的最新位置,以便配置从数据库。

至此,mysql主数据库配置完成。


2.配置从数据库

1) 找到MySQL安装文件夹修改my.ini文件,在[mysqld]下面增加下面几行代码

# 数据库id,唯一
server-id = 2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin 
replicate-ignore-db=mysql 
保存后,重启mysql服务,使之生效。

2) 打开从库命令行界面,运行命令,关闭同步功能。
stop slave;

3) 然后运行关键语句:
change master to master_host='192.168.0.1',master_user='dev',master_password='mysql',master_log_file='master-bin.000001',master_log_pos=932061774;
注意:master_log_file(master服务器产生的日志)及master_log_pos以实际Master库配置为准,不能搞错。

之后,运行命令,重启同步功能:

start slave;
三、数据同步测试

1.在主库中更改数据:

2.查看从库相应数据:

测试完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值