MySQL主从配置,读写分离

大型网站为了缓解大量的并发访问,要网站实现分布式负载均衡。但是数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果不堪设想。这时候我们会考虑如何减少数据库的连接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话,必然会想到服务器群来分担主数据库的压力。利用MySQL主从配置,实现读写分离,减轻数据库压力。这种方式,在如今很多网站里都有使用,也不是新鲜事情,今天配置了一下,写出来方便大家学习参考。


环境描述:
一台master服务器(VM中的ubuntu14.04系统)
一台slave服务器(win7系统)


具体实现:

  1. 安装mysql
    在主从服务器上安装mysql,操作比较简单,这里就不再赘述。
  2. 配置Master主服务器
    (1)在Master服务器上创建一个用户‘an’,并允许其它Slave服务器通过远程访问Master,通过用户读取二进制日志,实现数据同步。
mysql>create user an;//创建新用户
//an用户必须拥有REPLICATION SLAVE权限,密码为mysql。这里的%是通配符,表示192.168.20.0-192.168.20.255的server都可以用an登录主服务器。如果不想适配这么多IP,可以固定IP。
mysql>GRANT REPLICATION SLAVE ON *.* TO 'an'@'192.168.20.%' IDENTIFIED BY 'mysql';

(2)找到mysql安装文件夹/etc/mysql/my.cnf修改my.cnf
在[mysqld]下增加下面代码

server-id=1   //数据库服务的唯一标识,推荐设置服务器Ip尾号
log-bin=master-bin //二进制日志
log-bin-index=master-bin.index

*查看配置文件中bind-address=127.0.0.1是否被注释,如果没有注释,必须注释掉,否则从数据库连接不到主数据库。
这里写图片描述
(3)查看日志

mysql>show master status;

这里写图片描述
记住这个日志文件和Position,配置从数据库有用。
(4)重启mysql服务

sudo service mysql restart

3.配置Slave从服务器(windows)
(1)找到mysql配置文件my.ini(我的my.ini居然没在安装文件夹,在X:\ProgramData\MySQL\MySQL Server 5.7下,找不到的同志可以去这个路径下看看),在[mysqld]下增加下面代码:

server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin 

(2)重启mysql服务
(3)连接Master服务器

//192.168.20.136是Master 服务器Ip
mysql>change master to master_host='192.168.20.136', 
 master_port=3306,
 master_user='an',
 master_password='mysql', 
 master_log_file='mysql-bin.000013',//Master服务器产生的日志,填入上面show master status显示的东东
 master_log_pos=107;

(4)启动Slave

mysql>start slave;

(5)查看成功与否

//在slave从数据库中输入下面指令查看状态
mysql>show slave status\G;

这里写图片描述
如果红框处都一样的话,恭喜配置成功。


至此所有配置都完成了。可以在Master中新建数据库,表,插入数据,在Slave数据库中看看有没有该数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值