阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL主从同步读写分离的集群配置

217次阅读
没有评论

共计 1815 个字符,预计需要花费 5 分钟才能阅读完成。

大型网站为了解决大量的高并发访问问题,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器支持,如此多的数据库连接操作,服务器性能再好数据库必然会崩溃。数据丢失的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的连接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached 等。如果资金充足的话,必然会想到假设服务器集群,来分担主数据库的压力。或者在硬件设备上,投入大量资金,购买高性能的服务器。出名的有 f5,硬件负载,软件负载等。

Ok 切入今天的主题,利用 MySQL 主从配置,实现读写分离,减轻数据库压力。这种方式,在如今很多网站里都有使用,也不是什么新鲜事情,今天总结一下,方便大家学习参考一下。

读写分离:

1. 多个服务器肯定比一个服务器好。

2. 在数据库写入的时候,会加入大量的锁(排它锁, 共享锁等等),从而影响性能。

3. 数据更安全, 多数据库存在备份数据。

搭建环境:

1. 搭设一台 Master 服务器(win7 系统 64bit,Ip:10.10.2.33)

2. 一台台 Slave 服务器(winXp 系统 32bit,ip:10.10.2.157)

原理:主服务器(Master)负责网站写操作,从服务器负责查询操作。主从服务器利用 MySQL 的二进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。

— 在主服务器上创建为 10.10.2.157 一个 dbadmin 用户,密码为 123456
— CREATE USER ‘dbadmin’@’10.10.2.157’ IDENTIFIED BY ‘123456’;
— 为用户 dbadmin 赋从复制权限(如果不想创建用户的话,可以使用 root 用户)。
— grant replication slave,replication client on *.* to ‘slave’@’10.10.2.157’ identified by ‘dbadmin’;
— 锁定所有表的写操作
— flush tables with read lock;
— 显示主服务器的状态
— show master status;
— 更改从服务器从主的二进制文件 mysql-test-bin.000002 中的 8042 位置开始同步
— change master to  master_host=’10.10.2.33′, master_user=’slave’, master_password=’root’, master_log_file=’mysql-test-bin.000002′, master_log_pos=8042;
— 开始同步
— start slave;
— 显示同步状态
— show slave status;
— 放开锁定的所有表
— unlock tables;

在主服务器上找到 my.ini 文件 (版本不同可能文件名字不同,如:my.cnf)。
mysql 中有好几种日志方式,我们只要启动二进制日志 log-bin 就 ok。在[mysqld] 下面增加下面几行代码

server-id=1  // 给数据库服务的唯一标识,一般为大家设置服务器 Ip 的末尾号
log-bin=master-bin
log-bin-index=master-bin.index
binlog-do-db=test 需要同步的数据库 如果有不需要同步的数据库可以用 binlog_ignore_db,两个都不设置,则全部同步   
auto_increment_offset=1 避免主键冲突重新设置自增主键的初始值
auto_increment_increment=2 自增主键的增量
expire_logs_days=1 设置 log 过期时间为两天,只保留两天的 log 日志
log_bin_trust_function_creators=1 给函数赋值权限

在从服务器上也找到 my.ini 文件。在 [mysqld] 下面增加下面几行代码

server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
auto_increment_offset=2 自增主键的初始值
auto_increment_increment=2 自增主键的增量

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140346.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1815字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中