一、为什么要使用数据库主从架构

  一个网站损耗资源最厉害的就是数据库,最易崩溃的也是数据库,而数据库崩溃带来的后果是非常严重的。数据库分为读和写操作,在实际的应用中,读操作的损耗远比写操作多太多,因此读操作是引起数据库崩溃的主因,所以我们把数据分为主从库,主库负责写操作,从库负责读操作。

二、数据库主从配置-主机

  1.  复制数据表至从库,保证两个数据库之间的数据表完全一致。
  2. 编辑配置文件my.cnf
  3. #在mysld下面加入如下行
    server-id= #一般根据IP最后一位
    log-bin=mysql-bin #主机必须打开,从库就是根据bin的二进制文件来读取主库操作记录
    binlog-do-db=test #需要备份的数据库名,如果需要备份多个数据库,重复设置这个选项即可
    binlog-ignore-db=mysql #不需要备份的数据库名,如果需要备份多个数据库,重复设置这个选项即可
    log-slave-updates #这个参数一定要加上,否则不会给更新的记录到二进制文件里
    slave-skip-errors #是跳过错误,继续执行复制操作
  4. 重启数据库 service mysqld restart
  5. 显示主库信息 show master status

  

  6.建立用户

    grant replication slave on *.* to slave@'192.168.1.%' identified by '123456';

    可在从机上做连接测试 mysql -h 主库IP -u root -p

  7.锁主库表(可省略,主要防止在写从库配置时,主表被改动)

    flush tables with read lock;

三、数据库主从配置-从机

  1.编辑配置文件my.cnf

  

#在mysld下面加入如下行
server-id= #一般根据IP最后一位
log-bin=mysql-bin
master-host=192.168.1.106 #主机IP
master-user=slave #连接用户
master-password= #密码
master-port= #端口
replicate-do-db=test #需要备份的数据库
replicate-ignore-db=mysql #忽略的数据库
master-connect-retry= #如果从服务器发现主服务器断掉,重新连接的时间差
log-slave-updates #这个参数一定要加上,否则不会给更新的记录到二进制文件里
slave-skip-errors #是跳过错误,继续执行复制操作

  2.重启数据库service mysqld restart

  3.查看slave状态 show slave status  (注:slave_IO_Running 以及 slave_SQL_Running 两列的值都是Yes,表明slave的IO以及sq线程都在运行)

  4.解锁主库表(若之前没有锁主库表,可忽略,在主机完成)

    unlock tables

  至此,主从库搭建完成,可在主库插入数据进行测试

  常见错误:

  如果发现slave_IO_Running以及slave_SQL_Running的值为No,在从机上执行如下操作

  

slave stop    #关闭从库
reset slave #重设从库
change master to master_host='主机IP',master_user='slave',master_password='',master_port='',master_log_file='mysql-bin.000012',master_log_pos='';
slave start;
show slave status;

ps:在主服务器中,主要是以写数据为主,建议使用InnoDB数据引擎 ,在从服务器中,建议使用MyISAM数据引擎。

Mysql数据库主从配置的更多相关文章

  1. [转帖]mysql数据库主从配置

    mysql数据库主从配置 https://www.toutiao.com/i6680489302947791371/ 多做实验 其实挺简单的 很多东西 要提高自信 去折腾. 架构与我 2019-04- ...

  2. Linux下MySQL数据库主从同步配置

    说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备 ...

  3. mysql数据库主从同步

    环境: Mater:   CentOS7.1  5.5.52-MariaDB  192.168.108.133 Slave:   CentOS7.1  5.5.52-MariaDB  192.168. ...

  4. Spring AOP实现Mysql数据库主从切换(一主多从)

    设置数据库主从切换的原因:数据库中经常发生的是“读多写少”,这样读操作对数据库压力比较大,通过采用数据库集群方案, 一个数据库是主库,负责写:其他为从库,负责读,从而实现读写分离增大数据库的容错率.  ...

  5. mysql数据库主从同步读写分离(一)主从同步

    1.mysql数据库主从同步读写分离 1.1.主要解决的生产问题 1.2.原理 a.为什么需要读写分离? 一台服务器满足不了访问需要.数据的访问基本都是2-8原则. b.怎么做?  不往从服务器去写了 ...

  6. (转)Mysql数据库主从心得整理

    Mysql数据库主从心得整理 原文:http://blog.sae.sina.com.cn/archives/4666 管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本 ...

  7. MySQL数据库主从同步延迟分析及解决方案

    一.MySQL的数据库主从复制原理 MySQL主从复制实际上基于二进制日志,原理可以用一张图来表示: 分为四步走: 1. 主库对所有DDL和DML产生的日志写进binlog: 2. 主库生成一个 lo ...

  8. MySQL数据库主从同步实战过程

       Linux系统MySQL数据库主从同步实战过程 安装环境说明 系统环境: [root@~]# cat /etc/redhat-release CentOS release 6.5 (Final) ...

  9. 在Eclipse中使用JDBC访问MySQL数据库的配置方法

    在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据 ...

随机推荐

  1. Jersey+mybatis实现web项目第一篇

    ---恢复内容开始--- Jesery第一篇:实现Jesery前后台页面交互,Form表单提交,后台控制页面跳转 该项目中有实现的功能: Mybatis实现后台数据持久化 Jersey页面数据提交 后 ...

  2. NOIP2017 总结

    联赛结束,但是我并没有得到预期的结果,特写此文分析原因,希望我不会就此退役. 回顾一年,我做了什么? 2016年联赛,我水了两天,抱着挂掉的心态拿到了1=. 2016-2017寒假,参加集训,三天考试 ...

  3. Asp.Net MVC 文件管理Demo(文件展示,上传,下载,压缩,文件重命名等)

    之前 ,有想做一个文件管理页面. 参考了 许多资料,终于完成了一个基于Asp.net MVC 的文件管理Demo.界面如下.   一,实现功能及相关技术 文件管理Demo基于Asp.NET MVC , ...

  4. Cucumber 相关资源

    Cucumber support: https://cucumber.io/support yan1234abcd的专栏:http://blog.csdn.net/yan1234abcd/articl ...

  5. PAT 输出华氏-摄氏温度转换表

    输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper].且每次增加2华氏度的华氏-摄氏温度转换表. 温度转换的计算公式:C=5×(F−3 ...

  6. 挂载U盘和移动硬盘

    1, 挂载U盘和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的.使用方法和移动硬盘完全一样.插入U盘之前[root at pldyrouter root]# fdisk - ...

  7. python 一篇就能理解函数基础

    一,函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过 ...

  8. 【Flask】 flask-socketio实现WebSocket

    [flask-socektio] 之前不知道在哪个场合下提到过如何从web后台向前台推送消息.听闻了反向ajax技术这种模式之后,大呼神奇,试了一下之后发现也确实可以用.不过,反向ajax的代价也很明 ...

  9. 【Python】 压缩文件处理 zipfile & tarfile

    [zipfile] 虽然叫zipfile,但是除了zip之外,rar,war,jar这些压缩(或者打包)文件格式也都可以处理. zipfile模块常用的一些操作和方法: is_zipfile(file ...

  10. Java ORM Hibernate 入门笔记

    一.下载 官网地址:http://hibernate.org/ Hibernate下有ORM(关系型数据库).OGM(NoSQL数据库).Search(对象全文检索).Validator的工具. OR ...