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主从配置及其读写分离的更多相关文章

  1. mysql主从配置,读写分离

    Mysql主从配置,实现读写分离 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库 ...

  2. 面试官你好,我已经掌握了MySQL主从配置和读写分离,你看我还有机会吗?

    我是风筝,公众号「古时的风筝」,一个简单的程序员鼓励师. 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面. 面试官:我看你简历上写的你们公司数据库是 ...

  3. MySQL主从同步、读写分离配置步骤、问题解决笔记

    MySQL主从同步.读写分离配置步骤.问题解决笔记 根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记:       现在使用的两台服务器已经 ...

  4. MySQL主从复制技术与读写分离技术amoeba应用

    MySQL主从复制技术与读写分离技术amoeba应用 前言:眼下在搭建一个人才站点,估计流量会非常大,须要用到分布式数据库技术,MySQL的主从复制+读写分离技术.读写分离技术有官方的MySQL-pr ...

  5. Mysql性能优化三:主从配置,读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  6. MySQL主从同步、读写分离配置步骤

    现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168. ...

  7. MySQL主从同步和读写分离的配置

    主服务器:192.168.1.126 从服务器:192.168.1.163 amoeba代理服务器:192.168.1.237 系统全部是CentOS 6.7 1.配置主从同步 1.1.修改主服务器( ...

  8. mysql主从同步+mycat读写分离+.NET程序连接mycat代理

    背景 最近新项目需要用到mysql数据库,并且由于数据量大的原因,故打算采用1主1从(主数据库负责增.删.改操作:从数据库负责查操作)的数据库架构,在实现主从之后还要实现读写分离的代理,在网上搜寻了很 ...

  9. mysql主从同步加读写分离

    首先主从同步,一旦建立,指定了用户,就不能更改了,否则会有错误.1063 Error 'Duplicate entry '%-test-' for key 'PRIMARY'' on query. D ...

随机推荐

  1. 封装springmvc处理ajax请求结果

    原文链接:http://blog.csdn.net/qq_37936542/article/details/79064818 需求描述:ajax向后台发起请求,springmvc在处理完请求后返回的结 ...

  2. NET中的System.Transactions(分布式事务)

    NET中的System.Transactions(分布式事务),当项目开发完成以后,调用的时候遇到了MSDTC的问题,在查阅了相关资料后将这个问题解决了,大致的问题主要是使用了分布式事务,而无法访问到 ...

  3. 关于ulimit -a中需要修改的两个值

    以root用户运行 ulimit -a 命令,其中有两个参数分别为: open files和max user processes   修改方法:  vi /etc/security/limits.co ...

  4. innodb_data_file_path参数误修改解决方法

    如果innodb_data_file_path参数被修改乱了,不知道原来值的大小,这样启动是会报错的.知道原来大小方法: 方法一:操作系统下ls -l看到原来大小,直接用ls -l显示的大小,复制即可 ...

  5. ubuntu14.04下unix网络编程 环境的配置

    在ubuntu下 首先:在unpv13e文件加下 ./configure cd lib make cd ../libfree make cd ../liggai make cd .. vim lib/ ...

  6. NOIP模拟 最佳序列 - 二分 + 单调队列

    题意: 各一个n(\(\le 20000\))的序列,定义纯洁序列为长度len满足\(L \le len \le R\)的序列,纯洁值为某一纯洁序列的平局值,输出所有纯洁序列中最大平均值. 分析: 二 ...

  7. centos 软件安装的三种方式

    Linux下面安装软件的常见方法: 1.yum 替你下载软件 替你安装 替你解决依赖关系 点外卖 缺少的东西 外卖解决 1).方便 简单2)没有办法深入修改 yum install -y tree 2 ...

  8. 【BZOJ 1036】[ZJOI2008]树的统计Count

    [题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1036 [题意] [题解] 树链剖分入门题; 每一条链维护一个线段树就好; uppest ...

  9. 关于生命周期里执行setState

    React里生命周期的哪些方法里可以执行setState,这对于很多使用React很长时间的开发都是个迷惑的问题. 先看一下完整的生命周期. 再看两篇文章 React componentDidUpda ...

  10. 入坑cordova

    原文:入坑cordova 因项目需要入坑cordova,奔跑吧骚年,目前只是要求安卓平台,下面都是以安卓为例 最好的学习资料还是官网. https://cordova.apache.org/ http ...