广告
返回顶部
首页 > 资讯 > 数据库 >Mysql的主从复制
  • 263
分享到

Mysql的主从复制

2024-04-02 19:04:59 263人浏览 泡泡鱼
摘要

Mysql的主从复制   Mysql的主从复制,我们一般用来保证数据间的同步关系,比如有分公司,我们就需要把数据同步给千里之外的分公司,这样就很方便快捷。这个实验我们还实现了ssl安全连

Mysql的主从复制

 

  Mysql的主从复制,我们一般用来保证数据间的同步关系,比如有分公司,我们就需要把数据同步给千里之外的分公司,这样就很方便快捷。这个实验我们还实现了ssl安全连接,这样在同步的过程起到了安全保护数据的作用

 

我们这个实验用的mysql版本是5.7,相比较之前的版本会有一些不同

  Mysql5.7 支持原生systemd

  Mysql5.7 对于多核CPU、固态硬盘、有着更好的优化 更好的InnoDB存储引擎 更为健壮的复制功能

 

安装mysql

我所用的系统环境:Centos7.2x86_64,这个版本自带mariadb-libs,所以要把它卸载:

Rpm  -aq  | grep mariadb

安装依赖包

安装cmake

【root@localhost  ~】#  tar zxf cmake-3.5.2.tar.gz

【root@localhost  ~】#  cd  cmake-3.5.2/

【root@localhost  cmake-3.5.2】#  ./bootstrap

使用 gmake && gmakeinstall 编译

【root@localhost  cmake-3.5.2】# gmake && gmake install

安装ncurses

【root@localhost  ~】# tar zxf ncurses-5.9.tar.gz

【root@localhost  ~】# cd ncurses-5.9/

【root@localhost  ncurses-5.9】# ./configure && make && make install

 

安装bison

【root@localhost  ~】# tar zxf bison-3.0.4.tar.gz

【root@localhost  ~】# cd bison-3.0.4/

【root@localhost  bison-3.0.4】# ./configure && make && make install

 

安装boost

【root@localhost  ~】# tar zxf boost_1_59_0.tar.gz

【root@localhost  ~】#cd boost_1_59_0/

【root@localhost  boost_1_59_0】# cd

【root@localhost  ~】#mv boost_1_59_0  /usr/local/boost

 

创建用户并添加到组

【root@localhost  ~】# groupadd -r mysql && useradd -r -g mysql -s /bin/false -M mysql

 

创建mysql安装目录和数据库目录

mkdir/usr/local/mysql                 ---创建目录

mkdir/usr/local/mysql/data            ---数据库目录

 

编译安装mysql

Mysql的主从复制Mysql的主从复制





我们可以使用make && make install 进行编译安装,不过这条命令是只用单线程,安装过程过于缓慢,用下面这条命令可以根据CPU核数指定编译时的线程数,大大提高了安装的速度

make -j  $(grep processor/proc/cpuinfo | wc -l)

-j:根据CPU核数指定编译时的线程数

  在安装所需模块的时候难免输入错误,当我们想重新运行cmake配置,需要删除CMakeCache.txt文件: #makeclean

   #rm -f CMakeCache.txt

 

 

优化Mysql的执行路径

Mysql的主从复制

设置权限并初始化MySQL系统授权表

#cd     /usr/local/mysql

# chown     -R     mysql:mysql     .         ---更改所有者,属组,注意是mysql .

注意:5.7.6之后版本初始系统数据库脚本(本文使用此方式初始化)

#/usr/local/mysql/bin/mysqld       --initialize-insecure      --user=mysql     --basedir=/usr/local/mysql

--datadir=/usr/local/mysql/data

Mysql的主从复制

Mysql的主从复制

生成一条mysql的初始密码(注意保存),后面要用到!

 

创建配置文件

#cd     /usr/local/mysql/support-files        ---进入MySQL安装目录支持文件目录

#cp     my-default.cnf     /etc/my.cnf      ---复制模板为新的配置文件,

修改文件中配置选项,如下图所示,添加如下配置项

#vi     /etc/my.cnf

 

Mysql的主从复制

 

配置mysql自动启动

Mysql的主从复制

我们开启mysql服务是会报错,原因是在mysqld.service,把默认的pid文件指定到了/var/run/mysqld/目录,而并没有事先建立该 目录,因此要手动建立该目录并把权限赋给mysql用户;

解决方法有两个:

一是创建mysqld.service文件里指定的目录/var/run/mysqld并给属主权限:chown -R mysql:mysql/var/run/mysqld

 

二是修改/usr/lib/system/system/mysqld.service文件里的指定路径,写入一个已存在的路径

 


Mysql的主从复制

Mysql的主从复制

systemctl daemon-reload重新加载

Mysql的主从复制再次启动mysql服务

Mysql的主从复制

连接数据库 ----密码是刚开的初始密码

Mysql的主从复制

修改库管理员用户root的密码

Mysql的主从复制 



实现基于ssl全连接的主从复制

1)在主mysql创建SSL/RSA文件

#cd  /usr/local/mysql/bin   ---切换目录

#mysql_ssl_rsa_setup  --user=mysql   --basedir=/usr/local/mysql

--datadir=/usr/local/mysql/data   ---创建新的SSL文件


重启mysqld服务之前,我们要给server-key.pem权限

chmod +r /usr/local/mysql/data/server-key.pem

然后再重启服务 #systemctl restart mysqld

重启mysql服务,这时错误日志中就没有报错了

登录mysql,执行mysql>showvariableslike'%ssl%';

Mysql的主从复制

从上图可以看到mysql支持了ssl安全连接

Mysql的主从复制在主mysql上的操作完成,再生成一个复制帐号:REQUIRESSL

进入mysql :

Mysql  -u root -p ‘123.abc’

Mysql>grant replication slave on *.* to ‘rep’@’192.168.1.%’identified  by require ssl;

 

Mysql的主从复制在主mysql上启用二进制日志并重启mysql服务

Mysql的主从复制

添加下面的配置项

Log-bin=mysql-bin

重启mysql

Systemctlrestart mysqld

进入mysql

Mysql-u root -p ‘123.abc’

 

查看master状态

Showmaster status;

Mysql的主从复制注:要记住上图所显示的file和position的值,配置从服务器要用到防火墙允许3306/tcp通信

【root@localhost  ~】# firewall-cmd  --permanent  --add-port=3306/tcp

【root@localhost  ~】#firewall-cmd  -reload


配置从服务器

##可以克隆主mysql,修改ip即可。

从mysql服务器 的/etc/my.cnf文件内容

 

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

server_id = 2

Socket = /usr/local/mysql/mysql.sock

log-error = /usr/local/mysql/data/mysqld.err

relay-log = /usr/local/mysql/data/relay-log-bin

relay-log-index = /usr/local//mysqldata/slave-relay-bin.index

 

Mysql的主从复制注:server_id要唯一,不能和其他mysql主机的重复

 

 

Mysql的主从复制把主mysql生成的证书给从服务器

在主mysql中的/usr/local/mysql/daata路径下执行scp;

【root@localhost data】# scp ca.pem client-cert.pemclient-key.pem root@192.168.1.150:/usr/local/mysql/data/

注意:192.168.1.150是从mysql的ip,192.168.1.100是主mysql的ip地址。

!!!!!!设置client-key.pemr权限,要不然无法使用私钥

 

 

重启mysql服务

Systemctl  restrt mysqld

进入数据库

Mysql-u root -p‘123.abc’

查看SSL是否被支持

Show variables ‘%ssl%’;

要求:have-openssl  YES 

    Have-ssl     YES

 

 

那么在配置主从复制之前可以在从mysql上用SSL连接主服务器试试:

   cd /usr/local/mysql/data

   Mysql --ssl-ca=ca.pem  ssl-cert=client-cert.pem  ssl-key=client-key.pem  -u rep

   -p123456 -h 192.168.1.100

进入数据库后,使用\s查看数据库详细信息,会发现是主mysql的ip,ssl测试连接成功

 

最后开始配置主从replicate,登录从mysql,在从上mysql上执行:

Mysql的主从复制

Mysql的主从复制

Mysql的主从复制

开启从mysql服务器

Mysql的主从复制

Mysql的主从复制

注意:因为我们的从mysql是克隆的主mysql,所以我们要修改从mysql的uuid

路径是:/usr/local/mysql/daa/auto.cnf

 

修改完成之后重启mysqld服务

Systemctl restart mysqld

登录从mysql 执行

show slave status\G;

会发现:

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

 

测试:在主mysql上创建库和表,在从mysql上会立刻进行同步!!!!


您可能感兴趣的文档:

--结束END--

本文标题: Mysql的主从复制

本文链接: https://www.lsjlt.com/news/51821.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql的主从复制
    Mysql的主从复制   Mysql的主从复制,我们一般用来保证数据间的同步关系,比如有分公司,我们就需要把数据同步给千里之外的分公司,这样就很方便快捷。这个实验我们还实现了ssl安全连...
    99+
    2022-10-18
  • mysql主从复制
    一.主从复制简介 2015年5月28日11时,12小时后恢复,损失:平均每小时106.48W$ 1)高可用 2)辅助备份 3)分担负载 复制是 MySQL 的一项功能,允许服务器将更改从一个实例复制到另一个实例。 1)主服务器将所有数据和...
    99+
    2019-04-07
    mysql主从复制
  • 【MySQL】主从复制
    纸上得来终觉浅,绝知此事要躬行。 概述 复制是指将主数据库的DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多...
    99+
    2015-07-01
    【MySQL】主从复制
  • mysql 主从复制
    1, 准备二台机器或者服务器 ,保持mysq 版本一样或者版本相差不大; 主机:114.215.198.39 从机:116.62.234.228 2    新建一个数据库 我的数据库是hlqzxm; 进入主机的mysql 配置文件中修改配置...
    99+
    2021-10-15
    mysql 主从复制 数据库入门 数据库基础教程 数据库 mysql
  • mysql主从复制
    两台mysql版本号为5.7以上   主库配置文件设置(注意设置在[mysqld]项中) 主库的ip地址为:192.168.1.1 server-id=1 #唯一id,主库设置1 log-bin=mysql-bin #日志记录...
    99+
    2018-10-04
    mysql主从复制 数据库入门 数据库基础教程 数据库 mysql
  • mysql主从复制--一主一从
    1、启动实例3306和33072、检查主库配置[root@client 3306]# egrep  "log-bin|server|sock"  my.cnfsocket &n...
    99+
    2022-10-18
  • centos8 mysql 主从复制
    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放,树高千尺,落叶归根人生不易,人间真情 目录 Linu...
    99+
    2023-08-31
    数据库 mysql 服务器
  • Mysql之主从复制
    文章目录 一.Mysql主从复制介绍 1.Mysql主从复制原理2.Mysql的复制类型3.Mysql主从复制的工作过程 二.搭建 Mysql主从复制1.首先关闭防火墙2.Mysql主从服...
    99+
    2023-09-04
    mysql java 数据库
  • mysql+ssl主从复制
    主从复制原理 作为主服务器Master, 会把自己的每一次改动都记录到 二进制日志 Binarylog 中。 (从服务器I/O thread会负责来读取master binary log, 然后写入自身r...
    99+
    2022-10-18
  • MySQL-5.5.33主从复制
    搭建主从同步需要在两个电脑上分别安装 MySQL ,我这里安装的是 CentOS6.7 64位,MySQL-5.5.33。MySQL 是二进制包安装的:http://aby028.blog.51cto.co...
    99+
    2022-10-18
  • Mysql/Mariadb主从复制
    概念 什么是·Mysql/Mariadb主从复制?     Mysql/Mariadb主从复制:当Master(主)数据库发生变化的时候,变化实时会同步到slave(从)数据库中; 类似于:Samba共享文件(C/S)、NFS网络文件...
    99+
    2021-03-22
    Mysql/Mariadb主从复制
  • Mysql 主从复制GTID
    --------------------------------------------安装准备配置/etc/my.cnf主master grant 分配复制帐号从slave ...
    99+
    2022-10-18
  • MySQL主从复制(二)
    主从架构中:从node是不接受w操作的,否则可能会导致数据不一致。一、复制架构中应该注意的问题: 1.限制slave为只读模式 可以设置在启动参数中。 > show global variable...
    99+
    2022-10-18
  • docker下MySQL的主从复制
    MySql的主从复制 sudo docker pull MySQL:5.7 拉取MySQL的镜像文件(版本号为 5.7) sudo docker run -p 3339:3306 --name master -e MYSQL_ROOT_PA...
    99+
    2016-02-20
    docker下MySQL的主从复制
  • mysql主从复制的步骤
    这篇文章主要讲解了“mysql主从复制的步骤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql主从复制的步骤”吧! 一、环境描述主服务器ip...
    99+
    2022-10-18
  • MySQL主从复制的用法
    这篇文章主要讲解了MySQL主从复制的用法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。简介MySQL 的主从复制又叫 Replication、AB 复制。至少需要两个 MyS...
    99+
    2022-10-18
  • Mysql主从复制的类型
    Mysql主从复制的类型基于语句的复制,在主数据库执行的语句会在从数据库上也执行。基于行的复制,主数据库的内容改编后,从数据会跟着变化。混合类型的复制,当基于语句的复制出现问题的时候,MySQL会自动选择使用基于行的复制。...
    99+
    2022-10-23
  • MySQL的主从复制、半同步复制和主主复制的概念
    本篇内容主要讲解“MySQL的主从复制、半同步复制和主主复制的概念”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的主从复制、半同步复制和主主复制的概念...
    99+
    2022-10-18
  • MySQL 主从复制问题
    导致SQL线程故障原因分析及解决方案 原因 1. 版本差异,参数设定不同,比如:数据类型的差异,SQL_MODE影响 2. 要创建的数据库对象已经存在 3. 要删除或修改的对象不存在 4. DML语句不符合表定义及约束时. 原因是由...
    99+
    2021-08-11
    MySQL 主从复制问题
  • MySQL进阶——主从复制
      1.主从复制的基本原理 slave会从master读取binlog来进行数据同步。主要有以下三个步骤: ①master将改变记录到二进制日志(binary log),这些记录过程叫做二进制日志事件(binary log e...
    99+
    2019-05-12
    MySQL进阶——主从复制
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作