mysql主从配置

    mysql数据库的处理能力是有限的,当对数据库请求的数量很大的时候,处理能力就会显得有些不足。
在我们的生活中,当银行的柜员柜台前排队的人很多的时候,后面排队的客人会不耐烦,这个时候银
行的工作人员会考虑多开放几个窗口,这样客人办理业务就快了很多。mysql也可以使用多开几个
柜台的方式,那就是多部署几台数据服务器呗。

遇到的问题:请求过多,处理速度达不到要求。
解决方案:增加服务器,使处理请求分流。

     但是增加数据库服务器和增加应用服务器有个区别,那就是他们的数据怎么保持统一。我们在数据库集群中
 指定一个数据库为主(master),所有的写入操作(insert/update/delete/create/drop...)操作都在
 该主数据库操作,其他的数据库为读(select)操作,当数据写入到master,数据库执行这个sql的 
 同时把该sql写入到一个日志文件(bin_log),其他的从服务器(slave)通过网络请求去读取bin_log
 ,从bin_log读取sql,然后在从数据库上面执行,从而使数据得到统一。

说了这么多, 我们来实践下,处理的步骤:

  1. 配置master,使执行的sql都插入到bin_log日志文件中
  2. 配置slave,使该应用知道自己的master在哪里,自己应该去哪里读取master的bin_log

实验材料:

master(主)
{
    "ip":"192.168.0.1",
    "linux版本":"Ubuntu 5.4.0-6ubuntu1~16.04.5",
    "数据库版本":"5.7.21"
}
slave(从)
{
    "ip":"192.168.0.2",
    "linux版本":"Red Hat 4.8.5-11",
    "数据库版本":"5.7.21"
}

我在这里把我的实验材料描述的那么清楚,是为了让读者少走弯路,不同的环境是有区别的。
配置master:

找到mysql的配置文件,这个文件在不同的linux版本下面名字有点点区别(mysql.cnf / mysqld.cnf /my.cnf), 我们可以通过find / -name my*cnf 去搜索下,省得自己去找了,找到后我们来编辑他,在[mysqld]行下面加入下面几行:

    server-id               = 1 # 集群中的唯一标识
    log_bin                 = /var/log/mysql/master-bin.log #指定的bin_log文件位置
    log_bin_index=master-bin.index # bin_log索引
配置ok保存后,记得重启下mysql: service mysqld restart
    然后我们需要在master上创建一个数据库用户,并允许其他slave服务器可以通过远程访问master,
通过该用户读取二进制日志,实现数据同步。
 //创建新用户
create user baibin;
/*
    repl用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,
    密码为mysql。说明一下192.168.0.%,这个配置是指明baibin用户所在服务器,
    这里%是通配符,表示192.168.0.0-192.168.0.255的Server都可以以baibin用
    户登陆主服务器。当然你也可以指定固定Ip。
*/
GRANT REPLICATION SLAVE ON *.* TO 'baibin'@'192.168.0.%' IDENTIFIED BY 'mysql';

然后我们来查询下配置是否ok,登录了mysql的命令行后执行: SHOW MASTER STATUS;
这里写图片描述
file就是我们生成的bin_log日志名,position是指当前日志已经写入到的位置,这两个属性是有用的。

配置slave

> 在slave机器上找到mysql的配置文件,这个文件在不同的linux版本下面名字有点点区别(mysql.cnf / 
mysqld.cnf /my.cnf), 我们可以通过find / -name my*cnf 去搜索下,省得自己去找了,找到后我们来编辑他,
在[mysqld]行下面加入下面几行:
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
配置ok保存后,记得重启下mysql: service mysqld restart

配置后,我们进入到slave的mysql的命令行,执行下面这个语句来完成slave和master的绑定:

CHANGE MASTER TO MASTER_HOST='192.168.0.1',

      MASTER_USER='baibin',

      MASTER_PASSWORD='你的master密码',

      MASTER_LOG_FILE='master-bin.000002',

      MASTER_LOG_POS=3022;
    然后启动slave: start slave;这个时候你就可以试试了,我们的同步是否ok,需要注意的是创建datasource
不会被同步,需要手动在每个服务器上自己创建,然后赋权。如果配置不ok,那就去查看下日志文件,看看原因是什么。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值