mysql主从配置及其读写分离
mysql主从配置意思就是一个主mysql服务器,一个从mysql服务器,一共要用到两台服务器。主服务器新增一个账号专门让从服务器来访问同步工作,主从配置完成后,主服务器主要就是新增和update操作,从服务器主要是查询工作。
主服务器ip为:192.168.31.11
从服务器ip为:192.168.31.12
- create user slave; //创建新用户
- //slave用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。说明一下192.168.31.12,这个配置是指明slave用户所在服务器。
- grant replication slave on *.* to 'slave'@'192.168.31.12' identified by '';
flush privileges;
在主服务器的/etc/my.cnf配置文件中配置以下信息
- server-id= //给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号
- log-bin=master-bin
- log-bin-index=master-bin.index
重启一下mysql,运行一下show master status;看看主服务器的状态是否正常
然后配置从服务器的mysql配置文件,修改完成之后然后重启mysql
- log_bin = mysql-bin
- server_id =
- relay_log = mysql-relay-bin
- log_slave_updates =
- read_only =
- //server_id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果slave为其它slave的master,必须设置bin_log。在这里,我们开启了二进制日志,而且显示的命名(默认名称为hostname,但是,如果hostname改变则会出现问题)。
- //relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自己的二进制日志(后面会看到它的用处)。
- //有些人开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改变,这是一种错误的配置。所以,尽量使用read_only,它防止改变数据(除了特殊的线程)。但是,read_only并是很实用,特别是那些需要在slave上创建表的应用。
接下来就是链接主服务器了
- change master to master_host='192.168.31.11', //Master 服务器Ip
- master_port=,
- master_user='repl',
- master_password='mysql',
- master_log_file='master-bin.000002',//Master服务器产生的日志
- master_log_pos=107;
查看从服务器的状态 show slave status;
主要是看
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两个都是yes则基本上没问题。
现实问题,一般情况,主服务器是之前就有的,而且还有很多数据,随着业务的提升,才需要从服务器,现在配置好了从服务器,但是现在从服务器上还没有数据的,这个是有需要将主服务器的数据手动复制到从服务器上,具体的操作是采用mysqldump。
首先是进行锁表操作,防止在复制的过程中有新的数据发生导致两边数据不一致。打开一个新的窗口进行mysql锁表操作。
mysql> flush tables with read lock;
然后在shell中使用mysqldump导出数据库
shell> mysqldump web -uroot -proot --lock-all-tables > ~/web.db
然后用scp命令将导出来的数据传送到从服务器上
scp ~/web.db root@192.168.31.12:/root/ 回车就会提示你输入密码
传送完毕后,然后在从服务器里面将数据导入到数据库中,然后在回到主服务器解锁。
mysql> unlock tables;
注意:现在出现了一个问题就是,我在锁表的时候,有一个用户就在执行删除某一条数据,现在解锁完成了,删除数据就成功了,但是现在从服务器发生了错误,就是那条sql无法执行。
这个问题如何解决呢?
这个时候就先在主服务器上进行锁表操作(flush tables with read lock),然后在从服务器上停止(slave stop)然后在重启一下(slave start),然后在主服务器解锁(unlock tables;)
mysql主从配置及其读写分离的更多相关文章
- mysql主从配置,读写分离
Mysql主从配置,实现读写分离 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库 ...
- 面试官你好,我已经掌握了MySQL主从配置和读写分离,你看我还有机会吗?
我是风筝,公众号「古时的风筝」,一个简单的程序员鼓励师. 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面. 面试官:我看你简历上写的你们公司数据库是 ...
- MySQL主从同步、读写分离配置步骤、问题解决笔记
MySQL主从同步.读写分离配置步骤.问题解决笔记 根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记: 现在使用的两台服务器已经 ...
- MySQL主从复制技术与读写分离技术amoeba应用
MySQL主从复制技术与读写分离技术amoeba应用 前言:眼下在搭建一个人才站点,估计流量会非常大,须要用到分布式数据库技术,MySQL的主从复制+读写分离技术.读写分离技术有官方的MySQL-pr ...
- Mysql性能优化三:主从配置,读写分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...
- MySQL主从同步、读写分离配置步骤
现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168. ...
- MySQL主从同步和读写分离的配置
主服务器:192.168.1.126 从服务器:192.168.1.163 amoeba代理服务器:192.168.1.237 系统全部是CentOS 6.7 1.配置主从同步 1.1.修改主服务器( ...
- mysql主从同步+mycat读写分离+.NET程序连接mycat代理
背景 最近新项目需要用到mysql数据库,并且由于数据量大的原因,故打算采用1主1从(主数据库负责增.删.改操作:从数据库负责查操作)的数据库架构,在实现主从之后还要实现读写分离的代理,在网上搜寻了很 ...
- mysql主从同步加读写分离
首先主从同步,一旦建立,指定了用户,就不能更改了,否则会有错误.1063 Error 'Duplicate entry '%-test-' for key 'PRIMARY'' on query. D ...
随机推荐
- Android 升级到android studio 2.2项目死活run不起来
背景:升级到Android studio 2.2项目死活运行不起来 现象如下: run with --stacktrace --debug等等抛出的bug简直无法忍视 解决办法:把compileSdk ...
- js 复制文本的四种方式
js 复制文本的四种方式 一.总结 一句话总结:js文本复制主流方法:document的execCommand方法 二.js 复制文本的四种方式 纯 转载复制,非原创 原地址:http://www.c ...
- Oracle数据库中的几个名字及监听的配置问题
学习数据库的时候,由于数据库只建了一个库,而且只是本机访问,所以没有对listener.ora与tnsname.ora这两个文件进行过多设置,但是实际中要区分客户端与服务器端,相互之间的访问就存在微妙 ...
- Tricks(四十八)—— 注释一段代码
为 if 的条件判断表达式,传一个永假的语句,来注释一段代码: # Python if False: ... ... ... # C/C++ if (false) { ... ... } 永远不要直接 ...
- 【b404】虫食算
Time Limit: 1 second Memory Limit: 50 MB [问题描述] 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母.来看一个简单 ...
- 三种方法解决 Failed to start LSB: Bring up/down networking 问题
感谢朋友支持本博客.欢迎共同探讨交流.因为能力和时间有限,错误之处在所难免.欢迎指正! 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...
- 【b604】2K进制数
Time Limit: 1 second Memory Limit: 50 MB [问题描述] 设r是个2K进制数,并满足以下条件: (1)r至少是个2位的2K进制数. (2)作为2K进制数,除最后一 ...
- Delphi程序员如何找到高薪的工作?(赚不到钱,原因只有一个,就是他们没有被公司录取。Delphi必须要独自进行深入研究,才能精通,同时也不能自由性太强)
转帖自:http://www.tommstudio.com/ViewNews.aspx?ID=187http://hi.baidu.com/rarnu/blog/ 本文翻译自<美国优秀经理观念大 ...
- caffe 源码阅读
bvlc:Berkeley Vision and Learning Center. 1. 目录结构 models(四个文件夹均有四个文件构成,deploy.prototxt, readme.md, s ...
- python 读写XLS
需要库: xlrd, xlwt, xlutils 导入 import xlrd from xlutils.copy import copy 打开文件 data = xlrd.open_workbook ...