MySql主从配置实践及其优势浅谈
MySql主从配置实践及其优势浅谈
1、增加两个MySQL,我将C:\xampp\mysql下的MYSQL复制了一份,放到D:\Mysql2\Mysql5.1
修改my.ini(linux下应该是my.cnf) :
[client]
port = 3307
[mysqld]
port = 3307
basedir=D:/Mysql2/Mysql5.1/mysql
datadir=D:/Mysql2/Mysql5.1/mysql/data/
之后,再增加MySQL2服务,
mysqld –install MySQL2 --defaults-file=D:\Mysql2\Mysql5.1\mysql\my.ini(需要管理员权限,否则会被无情拒绝)
另一个MySQL将端口号设置为3308 服务名为MySQL1(打算用做从数据库)
2、新建了一个test数据库,新建一张twenty_million表(id,name,value) 往里面插入2000W条数据(5min)
3、主从数据库同步配置, 如果不是同一个台服务器上的需要设置权限用户给它。
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.99' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.13 sec)
因为我的是一台机器上进行测试,所以直接用root用户了,密码123
修改主数据库的配置文件,my.ini,开启BINLOG,并设置server-id的值,修改之后必须重启Mysql2服务:
[mysqld]
log-bin=D:/Mysql2/Mysql5.1/mysql/log/mysql-bin.log
server-id=1
之后可以得到主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复
接下来停止主数据的更新操作,并生成数据库的备份,可以通过mysqldump到从数据库,当然也可以直接用cp命令将数据文件复制到从数据库中去(1%拷了384秒,情何以堪?我还不如重新插一遍测试数据呢,果断掐了)
也算学个命令,其实完全可以用navicate里的导出数据库再导入数据库
进行从数据库的配置:
修改my,ini(my.cnf)
[mysqld]
server-id=2
log_bin = /var/log/mysql/mysql-bin.log
master-host =192.168.1.100(本机的话:127.0.0.1//localhost是它的别名!)
master-user=test
master-pass=123456
master-port =3306
master-connect-retry=60
replicate-do-db =test
但是,我一直都无法启动,晚上搞了很久也没搞出个所以然来,最后只能添加错误日志
log-error=D:/Mysql1/Mysql5.1/mysql/log/mysql-bin.log
net start mysql1
日志截图
继续度娘的干活:
然后我就想知道自己的mysql版本,进入cmd:
我次奥,我一直以为我的mysql是5.1啊.知道了问题原因,解决也比较容易
在从数据库的my.ini中只需要添加两项:
server-id = 2
replicate-do-db = mydatabase
之后再在cmd下:
mysql> change master to master_host='127.0.0.1',master_user='root',master_password='123',master_log_file='mysql-bin.000001',master_log_pos=60, master_port=3307;
其中master_log_file和master_log_pos通过在主数据库show master status;得到。
端口不是默认端口的话,如master_port=3307,不要加引号。
接下来就是重启服务,先启动主数据库服务(我的是mysql2),再启动从数据库服务,然后就算完成了主从配置,在主数据库中更改test数据库中数据,理论上,在从数据库中也会做相应的更改
当然这是理论上的,实际上,我特么又出问题了,从数据库中的数据并没有按照理论上做出相应的更改,我仔细看了下show slave stats\G和别人成功的截图对比下,其中slave_IO_Running这项,我的是NO人家的是YES,目测是这个问题,查看log日志
找不到…..log file name inXXXXXX 继续度娘:http://hi.baidu.com/zhanglp/item/9bd563e186b4b918585dd8ba找到答案以及解决办法
在主数据库中
再更改从数据库(建议开两个CMD,我之前一直都是一个CMD,exit cd麻烦死)
再
搞定,测试,成功!
4、最后总要说说它的实际作用的么,在我百度之前,我在想,这不就是数据库的实时备份么,也没什么大不了的,这样的想法,只能说明自己对数据库读写压力完全不了解。
在MySQL数据库中,支持单项、异步复制。在复制过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器。如下图所示。此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主服务器时,从服务器会通知主服器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从那个时刻起发生的任何更新,然后锁住并等到主服务器通知新的更新。
好处一:实现服务器负载均衡
即可以通过在主服务器和从服务器之间切分处理客户查询的负荷,从而得到更好的客户相应时间。通常情况下,数据库管理员会有两种思路。
一是在主服务器上只实现数据的更新操作。包括数据记录的更新、删除、新建等等作业。而不关心数据的查询作业。数据库管理员将数据的查询请求全部 转发到从服务器中。这在某些应用中会比较有用。如某些应用,像基金净值预测的网站。其数据的更新都是有管理员更新的,即更新的用户比较少。而查询的用户数 量会非常的多。此时就可以设置一台主服务器,专门用来数据的更新。同时设置多台从服务器,用来负责用户信息的查询
二是在主服务器上与从服务器切分查询的作业。在这种思路下,主服务器不单单要完成数据的更新、删除、插入等作业,同时也需要负担一部分查询作业。而从服务器的话,只负责数据的查询。当主服务器比较忙时,部分查询请求会自动发送到从服务器重,以降低主服务器的工作负荷。
好处二:通过复制实现数据的异地备份
如上图所示,可以定期的将数据从主服务器上复制到从服务器上,这无疑是先了数据的异地备份。在传统的备份体制下,是将数据备份在本地。此时备份 作业与数据库服务器运行在同一台设备上,当备份作业运行时就会影响到服务器的正常运行。有时候会明显的降低服务器的性能。同时,将备份数据存放在本地,也 不是很安全。如硬盘因为电压等原因被损坏或者服务器被失窃,此时由于备份文件仍然存放在硬盘上,数据库管理员无法使用备份文件来恢复数据。这显然会给企业 带来比较大的损失。
好处三:提高数据库系统的可用性
数据库复制功能实现了主服务器与从服务器之间数据的同步,增加了数据库系统的可用性。当主服务器出现问题时,数据库管理员可以马上让从服务器作为主服务器,用来数据的更新与查询服务。然后回过头来再仔细的检查主服务器的问题。此时一般数据库管理员也会采用两种手段。
一是主服务器故障之后,虽然从服务器取代了主服务器的位置,但是对于主服务器可以采取的操作仍然做了一些限制。如仍然只能够进行数据的查询,而 不能够进行数据的更新、删除等操作。这主要是从数据的安全性考虑。如现在一些银行系统的升级,在升级的过程中,只能够查询余额而不能够取钱。这是同样的道 理。
二是从服务器真正变成了主服务器。当从服务器切换为主服务器之后,其地位完全与原先的主服务器相同。此时可以实现对数据的查询、更新、删除等操 作。为此就需要做好数据的安全性工作。即数据的安全策略,要与原先的主服务器完全相同。否则的话,就可能会留下一定的安全隐患
MySql主从配置实践及其优势浅谈的更多相关文章
- 朱晔的互联网架构实践心得S2E6:浅谈高并发架构设计的16招
朱晔的互联网架构实践心得S2E6:浅谈高并发架构设计的16招 概览 标题中的高并发架构设计是指设计一套比较合适的架构来应对请求.并发量很大的系统,使系统的稳定性.响应时间符合预期并且能在极端的情况下自 ...
- Mysql主从配置,实现读写分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...
- mysql 主从 配置和同步管理
首先呢,需要有两个mysql服务器.如果做测试的话可以在同一台机器上装两个mysql服务程序,注意要两个运行程序的端口不能一样.我用的是一个是默认的3306,从服务器用的是3307端口. 在主服务创建 ...
- 黄聪:Mysql主从配置,实现读写分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...
- mysql主从配置
引言: 双11,阿里云服务器打折,于是我忍不住又买了一台服务器,于是咱也是有两台服务器的爷们了,既然有了两台服务器,那么肯定要好好利用一下吧,那么就来玩玩mysql的主从配置吧. 准备 两台数据库服务 ...
- CentOS 7下的 Mysql 主从配置
最近在玩mysql主从配置,在此记录一下 一.前言 1.安装两个虚拟机(CentOS 7).iP分别是192.168.47.131 和192.168.47.133.其中192.168.47.133作为 ...
- Mysql主从配置+读写分离
Mysql主从配置+读写分离 MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. ...
- mysql主从配置(清晰的思路)
mysql主从配置.鄙人是在如下环境测试的: 主数据库所在的操作系统:win7 主数据库的版本:5.0 主数据库的ip地址:192.168.1.111 从数据库所在的操作系统:linux 从数据的版本 ...
- Mysql笔记之 -- 小试MYSQL主从配置
mysql主从配置: 硬件: 两台服务器 1.Ubuntu 12.04.4 LTS (GNU/Linux 3.2.0-60-generic-pae i686) 2.Ubuntu 12.04.4 LT ...
随机推荐
- android 编译共享ccache的缓存
1. android自带的ccache版本号(2.4版本号)过低,是无法支持以上的功能的,须要使用新版ccache. 2. 最新的ccache请到http://ccache.samba.org/dow ...
- linux open
一直记住不打开文件时候的mode,今天发现原来可以直接用0644这样的八进制数字代替,好开森 #include <stdio.h> #include <sys/types.h> ...
- Hack 语言学习/参考---1.3 Summary
Summary Hack provides the following, non-exhaustive list of features: Ability to annotate function a ...
- nexus私服linux搭建问题
一.最近搭建nexus私服,从官网下载下来总是报503服务器无效,很是无奈,最后在网上找到一个可以用的 收藏起来,这里给大家共享一下 下载地址:http://pan.baidu.com/s/1kT3U ...
- C语言库函数大全及应用实例八
原文:C语言库函数大全及应用实例八 [编程资料]C语言库函数大全及应用实例八 函数名: kbhit 功 能: 检查 ...
- 一步一步写算法(之n!中末尾零的个数统计)
原文:一步一步写算法(之n!中末尾零的个数统计) [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在很多面试的题目中,求n!结果中零的个数也是 ...
- phpstorm安装laravel-ide-helper实现自动完成、代码提示和跟踪
本文讲述laravel-ide-helper的安装方法.phpstorm安装了laravel-ide-helper后可以实现代码提示.跟踪和自动补全,减少查看API文档的次数,提高开发效率. lara ...
- MonkenRunner通过HierarchyViewer定位控件的方法和建议(Appium/UIAutomator/Robotium姊妹篇)
1. 背景 在使用MonkeyRunner的时候我们经常会用到Chimchat下面的HierarchyViewer模块来获取目标控件的一些信息来辅助我们测试,但在MonkeyRunner的官网上是没有 ...
- Angular指令(一)
Angular开发者手册重点翻译之指令(一) 创建自定义的指令 这个文章将解释什么需要在自己的angularjs应用中创建自己的指令,以及如何实现它. 什么是指令 在高的层面上讲,指令是DOM元素中的 ...
- VS2015 ASP.NET5 Web项目
VS2015 ASP.NET5 Web项目结构浅析 前言 本文个人同步博客地址http://aehyok.com/Blog/Detail/76.html 在安装好VS2015之后,一直想看看新版本 ...