小生博客:http://xsboke.blog.51cto.com

-------谢谢您的参考,如有疑问,欢迎交流


目录:

--------mysql-5.7.13简介及安装

--------配置mysql-5.7.13的ssl加密传输

--------基于SSL加密传输实现mysql-5.7.13的主从复制


一、 Mysql5.7.13简介

1. Mysql5.7的主要优化

  • mysql5.7原生支持centos7.*版本的systemd

  • 更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化

  • 更好的InnoDB存储引擎

  • mysql5.6版本之后开始支持多线程去实现主从复制

  • 新增sys库:以后这会是DBA访问最频繁的库

  • 更好的优化器:优化器代码重构的意义将在这个版本及以后的版本中带来巨大的改进,Oracle官方正在解决MySQL之前最大的难题原生JSON类型的支持(JavaScript Object Notation)

  • 注:JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

1) JSON 语法是 JavaScript 对象表示语法的子集。

数据在键值对中

数据由逗号分隔

花括号保存对象

方括号保存数组

用JSON编写的文件,可以代替.yaml格式的文件。(docker  kubernetes中用的到,创建RC。)

2. 在centos7.*安装mysql5.7的基本流程

1)        Centos7.*默认安装了mariadb-libs数据库,需要卸载

2)        确认内核版本和系统版本

3)        安装依赖包

  • cmake:由于从MySQL5.5版本开始弃用了常规的configure编译方法,所以需要CMake编译器,用于设置mysql的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。

  • Boost  #从MySQL 5.7.5开始Boost库是必需的,mysql源码中用到了C++的Boost库,要求必须安装boost1.59.0或以上版本

  • GCC是Linux下的C语言编译工具,mysql源码编译完全由C和C++编写,所以必须安装GCC

  • bison:Linux下C/C++语法分析器

  • ncurses:字符终端处理库

4)        创建mysql用户和用户组

5)        创建mysql需要的目录

6)        安装mysql5.7

7)        优化数据库执行路径并初始化数据库

二、在centos7.2安装mysql5.7并进行优化配置

1. 安装文件准备

下载cmake-3.5.tar.gz:

http://wwwNaNake.org/download/

下载ncurses-5.9.tar.gz:

ftp://ftp.gnu.org/gnu/ncurses/

下载bison-3.0.4.tar.gz:http:

//ftp.gnu.org/gnu/bison/

下载mysql-5.7.13.tar.gz:

wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz

下载Boost_1_59_0.tar.gz:

wget

http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

2. 首先安装依赖包及创建mysql用户、组和安装目录

确认系统有没有安装默认的数据库

先删除默认安装的mariadb-libs数据库

Cmake(cmake需要gcc  gcc-c++  make automake  的支持)

安装ncurses

安装bison

安装boost

创建mysql需要的组和用户

创建安装路径

3. 安装mysql5.7.13

首先进行cmake配置

然后编译并安装

优化mysql执行路径并设置授权并初始化mysql系统授权表

创建配置文件

配置mysql自动启动

首先去查看错误日志

然后去查看/var/run下有没有mysqld这个目录

下面修改mysqld服务脚本

再次重启mysql服务

修改mysql的默认密码

到此mysql安装完毕

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

1. 首先在master创建ssl.rsa文件

2. 关于密钥权限出现的问题(必须解决)

重启mysqld服务(有时会报错,但是有时只能通过查看错误日志才能发现错误)

查看server-key.pem的权限

修改权限并重启mysqld

再次查看mysqld错误日志

3. 登录mysql查看是否支持了ssl

4. 在master生成一个用于mysql主从复制的账号

5. 在master上启动二进制文件并重启服务

6. 查看master的状态

需要让从知道应该从master的什么位置开始进行主从复制

7. 修改slave的my.cfg文件指定中继日志及中继日志清单的存放位置

8. 将master生成的证书传送给slave

9. 设置client-key.pem的r权限

10. 在slave的配置文件中添加证书和密钥对存放的位置

重启后最好查看一下mysql的错误日志,是否出现了错误信息

11. 查看ssl是否被支持并进行测试

登录slave的数据库

测试ssl连接是否成功

12. Mysql5.7的每个服务器都拥有一个独一的UUID号(扩展知识)

13. 在slave设置同步并且启用从功能

14. 测试

首先在master创建数据库和表并插入数据

然后在slave查看数据是否同步

转载于:https://blog.51cto.com/xsboke/1922949

MySQL:安装和基于SSL加密的主从复制(基于5.7)相关推荐

  1. 教你构建MySQL主从结构,实现基于SSL加密的主从同步机制。

    实验环境RHEL6.4 admin1.tuchao.com    192.168.1.201    主服务器 admin2.tuchao.com    192.168.1.202    从服务器 先在 ...

  2. mysql主从同步加密_教你构建MySQL主从结构,实现基于SSL加密的主从同步机制

    实验环境RHEL6.4 admin1.tuchao.com    192.168.1.201    主服务器 admin2.tuchao.com    192.168.1.202    从服务器 先在 ...

  3. MySQL基于SSL协议的主从复制

    数据对于大部分公司来说都是最重要的部分,而MySQL的服务器在同步数据时,默认是使用明文进行传输,所以接下来就来说说MySQL基于SSL协议进行密文传输数据的主从复制模式. 逻辑拓扑: 接下来的实验中 ...

  4. centos编译安装配置支持ssl加密的mysql replication

    参考文章:http://www.howtoforge.com/how-to-set-up-mysql-database-replication-with-ssl-encryption-on-cento ...

  5. mysql ssl编译_centos编译安装配置支持ssl加密的mysql replication

    参考文章:http://www.howtoforge.com/how-to-set-up-mysql-database-replication-with-ssl-encryption-on-cento ...

  6. mysql 5.7配置SSL加密

    一[需求] 应等保3.0要求,数据库需要开启SSL加密措施和强制SSL通信保证重要数据在传输过程中的完整性. 二[SSL介绍] SSL(Secure Socket Layer:安全套接字层)利用数据加 ...

  7. Mysql原理、主从复制、半同步复制及基于SSL复制

    本篇博文主要讲解Mysql主从复制.半同步.基于SSL加密的复制 简介 MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.MySQL被广泛地应用在Internet上 ...

  8. mysql5.7 skip ssl_MySQL 5.7 的SSL加密方法

    MySQL 5.7 的SSL加密方法 MySQL 5.7.6或以上版本 (1)创建证书开启SSL验证 --安装openssl yum install -y openssl openssl versio ...

  9. mysql主从备份 ssl_基于SSL的mysql主从复制

    基于SSL的mysql主从复制 [背景] MySQL的协议是明文的,当复制一些重要数据时.有时需要用到SSL功能,以保证数据的安全性. [准备] 准备前期准备 一.主从时间一致性 [root@node ...

最新文章

  1. JS_高程6.面向对象的程序设计(2)创建对象_1
  2. Python字符串编码坑彻底详细解决 何梁
  3. [分享]组织机构图控件
  4. Java8学习系列之匿名函数Lambda
  5. C++ string线程不安全
  6. python3 中print 显示不全问题
  7. 面试官问你MySQL的优化,看这篇文章就够了
  8. shell统计游戏活跃用户数之改进过程分析
  9. pytorch学习笔记(二十一):Channels
  10. mysql 并发_mysql 的读写锁与并发控制
  11. POJ 2226 Muddy Fields(最小点覆盖)题解
  12. paip.提升性能---首页性能加快解决方案
  13. 单片机c语言 oxfe,单片机C语言程序设计实训100例——基于8051+Proteus仿真-程序.docx...
  14. PE系统-微PE工具箱V2.1 - 有情怀的PE - PE中的战斗鸡无广告VIP精品
  15. 试验设计——均匀试验设计·好格子点法
  16. baidumap 判断是否安装百度地图客户端
  17. 大学生php实训总结_php实训报告.doc
  18. 什么是熔断? 熔断有哪几种状态 ?断路器的工作原理
  19. /lib//libclntsh.so: file format not recognized; treating as linker script
  20. 线下门店管理运营 线下门店数据分析

热门文章

  1. 科普篇:贝叶斯网络中的置信度传播
  2. 机器学习Basics-第十一期-循环神经网络RNN
  3. (已解决)module ‘tensorflow‘ has no attribute ‘app‘
  4. 微软和谷歌的人工智能,在SuperGLUE基准测试中超越了人类
  5. 解读自动驾驶的2020:从硬件角度看,无人车商业化落地难在哪?
  6. 云计算军事运用有啥特点
  7. AI实时特效,魔幻修图,Adobe Photoshop相机拯救PS菜鸟
  8. 真的超越了波士顿动力!深度强化学习打造的 ANYmal 登上 Science 子刊
  9. 微软宣布在机器翻译方面取得突破,中翻英可达人类水平
  10. “计算机艺术之父”、现代计算机技术先驱查理斯·苏黎去世,享年99岁