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

MySQL主从配置及实现读写分离

394次阅读
没有评论

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

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

MySQL 主从配置及实现读写分离

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

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

2、配置 Master 主服务器

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

MySQL 主从配置及实现读写分离

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

MySQL 主从配置及实现读写分离

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

MySQL 主从配置及实现读写分离

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

MySQL 主从配置及实现读写分离 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  所有操作日志,所以,你的任何改变主服务器数据库的操作,都会同步到从服务器上。创建个数据库,表试试吧。

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

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7805086
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...