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

概述:搭设一台Master服务器(win8.1系统,Ip:192.168.0.104),搭设两台Slave服务器(虚拟机——一台Ubuntu,一台 Windows Server 2003)

原理:主服务器(Master)负责网站NonQuery操作,从服务器负责Query操作,用户可以根据网站功能模特性块固定访问Slave服务器,或者自己写个池或队列,自由为请求分配从服务器连接。主从服务器利用MySQL的二进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。

具体实现:

1、在主从服务器上都装上MySQL数据库,windows系统鄙人安装的是mysql_5.5.25.msi版本,Ubuntu安装的是mysql-5.6.22-linux-glibc2.5-i686.tar

windows安装mysql就不谈了,一般地球人都应该会。鄙人稍微说一下Ubuntu的MySQL安装,我建议不要在线下载安装,还是离线安装的好。大家可以参考 http://www.linuxidc.com/Linux/2013-01/78716.htm 这位不知道大哥还是姐妹,写的挺好按照这个就能装上。在安装的时候可能会出现几种现象,大家可以参考解决一下:

(1)如果您不是使用root用户登录,建议 su - root 切换到Root用户安装,那就不用老是 sudo 了。

(2)存放解压的mysql 文件夹,文件夹名字最好改成mysql

(3)在./support-files/mysql.server start 启动MySQL的时候,可能会出现一个警告,中文意思是启动服务运行读文件时,忽略了my.cnf文件,那是因为my.cnf的文件权限有问题,mysql会认为该文件有危险不会执行。但是mysql还会启动成功,但如果下面配置从服务器参数修改my.cnf文件的时候,你会发现文件改过了,但是重启服务时,修改过后的配置没有执行,而且您 list一下mysql的文件夹下会发现很多.my.cnf.swp等中间文件。这都是因为MySQL启动时没有读取my.cnf的原因。这时只要将my.cnf的文件权限改成my_new.cnf的权限一样就Ok,命令:chmod 644 my.cnf就Ok

(4)Ubuntu中修改文档内容没有Vim,最好把Vim 装上,apt-get install vim,不然估计会抓狂。

这时候我相信MySQL应该安装上去了。

2、配置Master主服务器

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

1 mysql>create user repl; //创建新用户

2 //repl用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。说明一下192.168.0.%,这个配置是指明repl用户所在服务器,这里%是通配符,表示192.168.0.0-192.168.0.255的Server都可以以repl用户登陆主服务器。当然你也可以指定固定Ip。

3 mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.%' IDENTIFIED BY 'mysql';

(2)找到MySQL安装文件夹修改my.Ini文件。mysql中有好几种日志方式,这不是今天的重点。我们只要启动二进制日志log-bin就ok。

在[mysqld]下面增加下面几行代码

1 server-id=1 //给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号

2 log-bin=master-bin

3 log-bin-index=master-bin.index

(3)查看日志

mysql> SHOW MASTER STATUS;

+-------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+-------------------+----------+--------------+------------------+

|master-bin.000001 | 1285 | | |

+-------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

重启MySQL服务

3、配置Slave从服务器(windows)

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

1 [mysqld]

2 server-id=2

3 relay-log-index=slave-relay-bin.index

4 relay-log=slave-relay-bin

重启MySQL服务

(2)连接Master

change master to master_host='192.168.0.104', //Master 服务器Ip

master_port=3306,

master_user='repl',

master_password='mysql',

master_log_file='master-bin.000001',//Master服务器产生的日志

master_log_pos=0;

(3)启动Slave

start slave;

4、Slave从服务器(Ubuntu)

(1)找到MySQL安装文件夹修改my.cnf文件,vim my.cnf

 s

(2) ./support-files/myql.server restart 重启MySQL服务  ,  ./bin/mysql 进入MySQL命令窗口

(3)连接Master

change master to master_host='192.168.0.104', //Master 服务器Ip

master_port=3306,

master_user='repl',

master_password='mysql',

master_log_file='master-bin.000001',//Master服务器产生的日志

master_log_pos=0;

(4)启动Slave

start slave;

OK所有配置都完成了,这时候大家可以在Master Mysql 中进行测试了,因为我们监视的时Master mysql  所有操作日志,所以,你的任何改变主服务器数据库的操作,都会同步到从服务器上。创建个数据库,表试试吧。。。

文章引自---www.cnblogs.com/alvin_xp/p/4162249.html

mysql主从配置访问_Mysql主从配置,实现读写分离相关推荐

  1. mysql主主备份_MySQL主从备份和主主备份配置+Keepalived+MySQL读写分离

    一.MySQL主从备份 为保证数据库的安全和效率,可以使用主从备份,当有写的操作可以在主服务器上操作,操作完之后备份到从服务器上,当有读操作时可以访问从服务器,这样在一定程度上保证了数据库的安全,当主 ...

  2. mysql主从配置实现_MySQL主从配置实现

    //MySQL主从配置 首先,两边都要安装MySQL,启动两边的MySQL 接着,配置主从,要保证主从数据都一样的 可以用rsync弄过去 在主上配置/etc/my.cnf server-id=1 l ...

  3. linux中mysql主主搭建_mysql 主从配置 主主配置

    MySQL 主从( MySQL Replication) ,主要用于 MySQL 的时时备份或者读写分离.在配置之前先做一下准备工作,配置两台 mysql 服务器,如果你的机器不能同时跑两台 Linu ...

  4. mysql innodb热备_mysql主从热备配置(含innodb)终极版

    转自 http://blogread.cn/it/article/361?f=wb mysql主从热备有2种配置方式,备份某些库或者忽略备份某些库,建议选择后者 master机器 以下是代码片段: v ...

  5. mysql+主从同步端口_MySQL主从同步配置

    MySQL主从同步 1. 主从同步的定义 主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave).因为复 ...

  6. mysql 主从同步不一致_MySQL 主从同步延迟的原因及解决办法

    mysql 用主从同步的方法进行读写分离,减轻主服务器的压力的做法现在在业内做的非常普遍. 主从同步基本上能做到实时同步.我从别的网站借用了主从同步的原理图. 在配置好了, 主从同步以后, 主服务器会 ...

  7. mysql主从架构搭建_MySQL主从架构搭建

    两台机器 创建用户: create user '用户'@'主机' identified by '123' 授权: grant 权限 on 级别(全局.库级别.表级别.列级别) to '用户'@'主机' ...

  8. mysql主从进行扩展_Mysql主从知识扩展部分1

    一.使用mysql-proxy 快速实现mysql 集群 读写分离 1.有两种方法: a)程序代码内部实现,对select操作分发到从库,其他到主库,再生产环境中应用比较广泛,比较知名的有DISCUZ ...

  9. mysql主从同步表结构_mysql主从同步的结构模式

    一主一从(重要),一主多从(最常用),主从从,主主结构: 控制主从同布时,备份指定的数据库而不是备份所有的库: 1 在主数据库服务端配置: vim /etc/my.cnf [mysqld] binlo ...

最新文章

  1. 2016030204 - git和github结合
  2. Go 语言实现字符串匹配算法 -- BF(Brute Force) 和 RK(Rabin Karp)
  3. QIIME 2用户文档. 1简介和安装(2018.11)
  4. django用户认证系统——注册3
  5. Java 位运算- 十进制数值转十六进制(内存中的数据)
  6. java.sql.SQLException: Io 异常: Got minus one from a read call
  7. 面试题 : Intent、IntentFilter、PendingIntent的区别
  8. 如何为 .NET Core 3.0 中 WPF 配置依赖注入 ?
  9. Java需要掌握的底层知识_Java程序员应该掌握的底层知识
  10. c语言程序设计课程设计心得体会,C语言程序课程设计心得体会
  11. SpringBoot的数据库操作
  12. 解决虚拟机VMware运行Ubuntu时无法和主机之间复制粘贴的问题
  13. 调试wifi简单记录
  14. Jmeter进行SOAP协议接口性能测试
  15. Android 提升效率
  16. 工程制图与AUTOCAD【1】
  17. Python - turtle画图库 临摹粉色花卉卡片
  18. 【C语言 穷举法编程实例——韩信点兵问题(苏小红版C语言(第3版))】
  19. 大 学 十 年 励志
  20. Python 实现图片裁剪(附代码) | Python工具

热门文章

  1. xgboost实例_XGBoost超详细推导,终于有人讲明白了!
  2. 小案例:编写立方体六个面,合成一张全景图后端
  3. python 数据分析-读写数据csv、xlsx文件
  4. Django单元测试
  5. python打开excel数据库_使用python导入excel文件中的mssql数据库数据
  6. 首个视觉-语言预训练综述来了!
  7. 最全BAT前端开发面试80题:算法+html+js+css!含答案大赠送!
  8. 论文浅尝 | 直译优于翻译?混合语言的知识库问答方法研究
  9. 论文浅尝 | 知识图谱相关实体搜索
  10. IDEA解决Maven项目编译后classes文件中没有.xml或.properties问题