mysql主从配置 简书_Mysql主从配置,实现读写分离-Go语言中文社区

转载:https://www.cnblogs.com/alvin_xp/p/4162249.html

大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想。这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如: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

579d2f553de79a956d8d4ae00027791f.png

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

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

2、配置Master主服务器

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

1mysql>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]下面增加下面几行代码

my.cnf 配置

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

b59d70ea487c9d6a7bbcbc2b4d317c0a.png

(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  所有操作日志,所以,你的任何改变主服务器数据库的操作,都会同步到从服务器上。创建个数据库,表试试吧。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

continue 的用户及实例

continue 跳出本次循环&#xff0c;继续下一次循环 “break”是跳出整个循环 实例1&#xff1a; for i in range(10): if i <5: continue    #这里条件是小于5&#xff0c;满足条件的就跳出了本次循环&#xff0c;不在执行print&#xff0c;所以最终打印的是5…

mysql报错注入实战_MySQL手工注入实战

实战记录&#xff0c;日本某站注入点 and 语句测试and11 返回正常&#xff0c;and2跳回首页&#xff0c;可能过滤了用 ’ 测试返回错误页面判断为注入点order by语句查询字段数测试字段数为9and 12 UNION SELECT 1,2,3,4,5,6,7,8,9报错联合查询语句&#xff0c;查询显示位2、3为…

20个简约风格网站设计作品欣赏

这篇文章收集了20个简洁清爽的网站设计作品案例&#xff0c;设计师们能够通过这些优秀的网页设计作品获得灵感&#xff0c;进而设计出更精美&#xff0c;更具有创意的网站作品&#xff0c;一起欣赏。vnsagaPure – Minimal WordPress themeAssemblydeladeeus design studioHocu…

python 股票自动交易从零开始_Python股票自动交易从零开始

课程目录1.Python股票自动交易从零开始~第一集~简介(Av24528809,P1).mp42.Python股票自动交易从零开始~第二集~安装工具包(Av24528809,P2).mp43.Python股票自动交易从零开始~第二集番外~配置Mac工作环境(Av24528809,P3).mp44.Python股票自动交易从零开始~第三集~获得股票列表-A…

python 银行工作_Python:银行系统实战(一)

最近突然抽筋想做一下大学时候做过的银行系统实战~代码就发在这里啦~学弟学妹们请查收~不过是python版本的&#xff0c;你们也用不上。。。两个py文件&#xff0c;一个是后台系统处理的&#xff0c;一个是总控py文件如下&#xff1a;view.py 内容如下&#xff1a;import timecl…

深入剖析LinkedList:揭秘底层原理

文章目录 一、 概述LinkedList1.1 LinkedList简介1.2 LinkedList的优点和缺点 二、 LinkedList数据结构分析2.1 Node节点结构体解析2.2 LinkedList实现了双向链表的原因2.3 LinkedList如何实现了链表的基本操作&#xff08;增删改查&#xff09;2.4 LinkedList的遍历方式 三、 …

mysql+server+80_Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程

准备篇一、环境说明&#xff1a;操作系统&#xff1a;Windows Server 2019PHP版本&#xff1a;php 7.3.11MySQL版本&#xff1a;MySQL 8.0.18.0二、相关软件下载&#xff1a;1、PHP下载地址&#xff1a;https://windows.php.net/downloads/releases/php-7.3.11-nts-Win32-VC15-…

SharePoint Server和Office 365之间的混合模式集成概述

正如您可能已经知道的那样&#xff0c;云中的Microsoft Office 365和SharePoint Server 2013/2016内部部署可以通过多种方式协同工作。这些通常被称为混合模式&#xff0c;因为它们将功能集成到SharePoint Online和SharePoint内部部署中。 以下Microsoft提供了下对照表&#xf…

图片压缩

1&#xff09;一张图片如何显示到屏幕上 一个电脑显示器, 上面的像素点就是内存/显存一张图片表达的颜色信息赋值到那块内存就是图片显示2&#xff09;图片文件的格式 图片文件的格式&#xff0c;无论是哪一种&#xff0c;最终都要包含原始颜色数据 原始颜色数据 一个像素用rgb…

python io操作需要用到什么硬件_Python I/O 操作(一)

一、I/O 概念I/O 指的是相对内存而言的 input 和 output从文件、数据库、网络向内存中写入数据叫做 input从内存向文件、数据库、网络中输出数据叫做 outputI/O 操作相比 CPU 操作而言是极慢的&#xff0c;往往 CPU 运行一秒钟&#xff0c;I/O 要忙几个月&#xff0c;所以要提高…

fortinate防火墙使用本地用户三步开通PPTP ***

1. 建立用户Local用户及用户组 2. 启用PPTP ***拨号功能 3. 建立***地址&#xff0c;并设置策略&#xff1a;让***用户可以访问内部和外部 &#xff08;注&#xff1a;建***地址和策略时&#xff0c;接口选择是外部&#xff0c;因为是外部拨入的&#xff09; 完成上述三步&…

李国浩20179307第二周作业

人物介绍 国内知名黑客&#xff1a; 吴翰青&#xff1a;阿里云首席安全科学家、云盾负责人&#xff0c;也是网络安全领域为人熟知的“刺”、“道哥”和“小黑”。他要想黑谁家的网站&#xff0c;别说企业、医院&#xff0c;银行都要彻夜难眠。但小黑是白帽子&#xff0c;黑客最…

转lua解释执行脚本流程

本文转自&#xff1a;http://www.cnblogs.com/zxh1210603696/p/4458473.html #include "lua.hpp"#include <iostream> using namespace std;#pragma comment(lib, "lua5.1.lib")struct lua_guard{lua_State *pL;lua_guard(lua_State *s) :pL(s){}~lu…

BZOJ1085: [SCOI2005]骑士精神

【传送门&#xff1a;BZOJ1085】 简要题意&#xff1a; 有一个5*5的棋盘&#xff0c;棋盘上有12个白棋子&#xff0c;12个黑棋子&#xff0c;和一个空格&#xff0c;每只棋子只能按照马走日的规则移动&#xff0c;求出最少步数达到以下状态 题解&#xff1a; DFSA* DFS很容易做…

软测第二周作业WordCount

一、Github地址: https://github.com/duwei1996/wc 二、PSP2.1表格 PSP2.1 PSP阶段 预估耗时 &#xff08;分钟&#xff09; 实际耗时 &#xff08;分钟&#xff09; Planning 计划 3030 Estimate 估计这个任务需要多少时间 3030 Development 开发 540900 Analysis …

java redirect 跨域_如何解决跨域重定向携带参数的问题?不使用将参数拼接在重定向url末尾的方式...

如何解决跨域重定向携带参数的问题&#xff1f;不使用将参数拼接在重定向url末尾的方式需求&#xff0c;项目A在服务器A上&#xff0c;需要重定向到服务器B上项目B&#xff0c;并且需要携带参数&#xff0c;参数对用户不可见&#xff0c;所以不可以将参数拼接在重定向url后面&a…

前端自动化测试工具:SlimerJS、phantomJS 和 CasperJS

对于富客户端的 Web 应用页面&#xff0c;自动登录、页面修改、抓取页面内容、屏幕截图、页面功能测试…面对这些需求&#xff0c;使用后端语言需要花费不少的精力才能实现。此时 SlimerJS、phantomJS 或 CasperJS 或许是更好的一种选择。 一、PhantomJS 和 SlimerJS PhantomJS…

java 封装 继承 堕胎_Java的继承、封装和多态

一、继承继承就是子类继承父类的特征和行为&#xff0c;使得子类对象(实例)具有父类的实例域和方法&#xff0c;或子类从父类继承方法&#xff0c;使得子类具有父类相同的行为。继承的特性子类拥有父类非 private 的属性、方法。子类可以拥有自己的属性和方法&#xff0c;即子类…

P2782 友好城市

题目描述 有一条横贯东西的大河&#xff0c;河有笔直的南北两岸&#xff0c;岸上各有位置各不相同的N个城市。北岸的每个城市有且仅有一个友好城市在南岸&#xff0c;而且不同城市的友好城市不相同。每对友好城市都向政府申请在河上开辟一条直线航道连接两个城市&#xff0c;但…

五个在线图形工具创建简单的设计元素

有很多网站可以为图形元素生成提供服务&#xff0c;但获得非常好的工具并不容易。这就是为什么我共享五个在线的图形工具的原因 Logotype Maker 这是一个简单而自由的做标志的Web工具&#xff0c;它可以帮助您创建一个标志 BgPatterns BgPatterns按几次按键&#xff0c;做背景图…