mysql数据库主从配置

https://www.toutiao.com/i6680489302947791371/

多做实验 其实挺简单的 很多东西 要提高自信 去折腾. 
架构与我 2019-04-16 21:50:24

在一篇文章《离线安装mysql数据库》,讲解了离线安装mysql数据库的过程,本文将讲解mysql数据库的主从配置方法。mysql数据库进行主从配置后,可以实现数据库的备份、同时应用也可以实现读写分离,提高应用的并发量。

1、主从原理

从《高性能mysql》书中讲解主从原理大致有三个步骤:

  • 在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记录称为二进制日志事件。
  • 从库通过IO线程将主库上的日志复制到自己的中继日志(Relay Log)中。
  • 从库通过SQL线程读取中继日志中的事件,将其重放到自己数据上。

原理图为:

2、主从配置

演示的环境如下:

首先在这两台服务器安装mysql数据库,安装方法参考《离线安装mysql数据库》

(1)、配置主库

  • 修改my.cnf文件,在[mysqld]加入下面的内容:
# 服务的唯一编号server-id = 1​# 开启mysql binlog功能log-bin = mysql-bin​# binlog记录内容的方式,记录被操作的每一行binlog_format = ROW​# 减少记录日志的内容,只记录受影响的列binlog_row_image = minimal​# 指定需要复制的数据库名为jgywbinlog-do-db = jgyw
  • 修改好配置文件,重启mysql服务
service mysqld restart
  • 创建从库同步数据的账号
grant replication slave on *.* to 'jgyw'@'192.168.197.136' identified by 'jgyw@123';flush privileges;

注意:上面这两个命令是在mysql的终端执行的。

  • 查看主库的状态:

mysql的终端执行:

show master statusG;

返回的信息为:

*************************** 1. row *************************** File: mysql-bin.000002 Position: 2380 Binlog_Do_DB: jgyw Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

(2)、配置从库

  • 修改my.cnf文件,在[mysqld]加入下面的内容:
# 服务的唯一编号server-id = 2​# 开启mysql binlog功能log-bin = mysql-bin​# binlog记录内容的方式,记录被操作的每一行binlog_format = ROW​# 减少记录日志的内容,只记录受影响的列binlog_row_image = minimal​# 指定需要复制的数据库名为jgywreplicate-do-db = jgyw
  • 修改好配置文件,重启mysql服务
service mysqld restart
  • 执行同步命令

mysql的终端执行:

# 设置主服务器ip,同步账号密码,同步位置change master to master_host='192.168.197.135',master_user='jgyw',master_password='jgyw@123',master_log_file='mysql-bin.000002',master_log_pos=2380;​# 开启同步功能start slave;
  • 查看从库的状态

mysql的终端执行:

show slave statusG;

返回信息为:

注意:Slave_IO_Running和Slave_SQL_Running的状态都为Yes时,说明从库配置成功。

3、测试

(1)、在主库上创建jgyw模式,即:

create schema jgyw;

(2)、在主库上的jgyw模式里面创建comm_config表,即:

use jgyw;CREATE TABLE comm_config (configId varchar(200) NOT NULL ,configValue varchar(1024) DEFAULT NULL ,description varchar(2000) DEFAULT NULL ,PRIMARY KEY (configId)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

(3)、在主库上往comm_config表中插入一条记录,即:

insert into comm_config(configId, configValue, description) values('name', '架构与我', '测试一下');

(4)、在从库上查看模式,即:

show schemas;

结果为:

+--------------------+| Database |+--------------------+| information_schema || jgyw || mysql || performance_schema || sys |+--------------------+5 rows in set (0.00 sec)

说明jgyw模式同步到从库了

(5)、在从库上查看jgyw模式下的表及数据,即:

use jgyw;show tables;

结果为:

+----------------+| Tables_in_jgyw |+----------------+| comm_config |+----------------+1 row in set (0.00 sec)

说明表也同步好了,再查看数据,即:

select * from comm_config;

结果为:

+----------+--------------+--------------+| configId | configValue | description |+----------+--------------+--------------+| name | 架构与我 | 测试一下 |+----------+--------------+--------------+1 row in set (0.00 sec)

说明数据也同步过来了。

[转帖]mysql数据库主从配置的更多相关文章

  1. Mysql数据库主从配置

    一.为什么要使用数据库主从架构 一个网站损耗资源最厉害的就是数据库,最易崩溃的也是数据库,而数据库崩溃带来的后果是非常严重的.数据库分为读和写操作,在实际的应用中,读操作的损耗远比写操作多太多,因此读 ...

  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. javascript之定时器的使用

    一:什么是定时器 (一)无限循环定时器 <script> window.onload = function(){ function test(){ alert("test&quo ...

  2. 【LuoguP5289】[十二省联考2019] 皮配

    题目链接 题目描述 略 Sol 一道背包问题 首先暴力做法设 \(dp[i][j][k]\) 表示前 \(i\) 个城市的学校被分到第一阵营 \(j\) 人 第一门派 \(k\) 人的方案数. 中间一 ...

  3. vue 父组件使用keep-alive和infinite-scroll导致在子组件触发父组件的infinite-scroll方法

    (vue.js)vue 父组件使用keep-alive和infinite-scroll导致在子组件触发父组件的infinite-scroll方法”问题疑问,本网通过在网上对“ (vue.js)vue ...

  4. python导入不同目录下的自定义模块

    一.代码目录结构 自定义的模块在Common包下,Study文件下SelectionSort.py文件导入自定义的模块 二.源码 2.1:SelectionSort.py文件   python导包默认 ...

  5. python+selenium封装UI自动化框架

    seleinum框架 框架的思想:  解决我们测试过程中的问题:大量的重复步骤,用自动化来实现    1)配置和程序的分离    2)测试数据和程序的分离    3)不懂编程的人员可以方便使用:使用的 ...

  6. sqlserver 中批量删除\r\n 换行符

    从Excel中向sqlserver 中批量粘贴数据时 可能会粘贴进去换行符 \r\n  这时候在查询时候是看不见的 只有把该字段赋值到‘’中才能发现换行. 批量替换语句: update [表名]set ...

  7. linux-PXE-12

    以DHCP+DNS模式管理服务器IP地址和主机名.服务器上架前,以其MAC地址为依据,在DHCP中配置主机保留并分配主机名.DHCP结合TFTP提供的PXE服务,提供PXE引导Linux内核和启动镜像 ...

  8. Jackson和fastjson简单用法及性能对比

    背景: Java处理JSON数据有三个比较流行的类库FastJSON.Gson和Jackson.fastjson是阿里做的国有开源Java工具包,jackson是spring mvc内置的json转换 ...

  9. [LeetCode]-algorithms-Reverse Integer

    Reverse digits of an integer. If the integer's last digit is 0, what should the output be? ie, cases ...

  10. Python爬取中文页面的时候出现的乱码问题(续)

    我在上一篇博客中说明了在爬取数据的时候,把数据写入到文件的乱码问题 在这一篇里面我做一个总结: 1.首先应该看一个案例 我把数据写在.py文件中: #coding:utf-8 s = 'hehe测试中 ...