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

   如果有疑问,请点击此处,然后发表评论交流,作者会及时回复。

  

 

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


目录:


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

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

--------基于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语言家族的习惯(包括CC++C#JavaJavaScriptPerlPython等)。这些特性使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或以上版本

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

  • bisonLinuxC/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数据库

    wKioL1kPCMXBLJ0wAAAttwrXMmA705.jpg

    Cmakecmake需要gcc  gcc-c++  make automake  的支持)

    wKioL1kPCPOyVqcKAAC-H21Sc8E573.jpg

    wKiom1kPCQbROBuDAAIJJ468b04682.jpg

    wKioL1kPCQez-6UwAADHgXr7ois407.jpg

   安装ncurses

    wKiom1kPCSThZZ8GAADXMNrYZhk576.jpg

    

   安装bison

    wKioL1kPCT7g7R4GAACG6jSAH3U258.jpg

   安装boost

    wKioL1kPCXTiF9G4AACAEDBc0kc849.jpg

   创建mysql需要的组和用户

    wKioL1kPCYXjtskqAACIK5EX2Nk915.jpg

   创建安装路径

    wKiom1kPCZvSM7nCAAB3vZSYH5w409.jpg

  3. 安装mysql5.7.13

    首先进行cmake配置

    wKiom1kPCb-wcbkyAAMXV6WdltI833.jpg

    然后编译并安装

    wKioL1kPCdKye8T6AADMkXEF8BI880.jpg

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

    wKiom1kPCd-yT3eWAAHicbNdBz8807.jpg

    wKioL1kPCf2DwaLsAAH2SuAHM2k886.jpg

    创建配置文件

    wKiom1kPCg3Tz3oOAACUUBDTLeA184.jpg

    wKioL1kPCg6QaNhpAAKAYHTYFXA300.jpg

    配置mysql自动启动

    wKioL1kPEWbS4DV0AAEdhaT1F4A071.jpg

    首先去查看错误日志

    wKiom1kPEZKiDEYjAAIF_WY1tcM479.jpg

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

    wKioL1kPEaGhI3Y5AAKdRPvPKJs639.jpg

    下面修改mysqld服务脚本

    wKiom1kPEa_j5zWAAAFDB2PNAgc207.jpg

    再次重启mysql服务

    wKioL1kPEcuQWJRYAAEmIR9tfv4713.jpg

    修改mysql的默认密码

    wKioL1kPEfqDDT3tAAEld0k6LuY746.jpg

    到此mysql安装完毕

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

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

    wKiom1kPEiuAzUvjAAHwrkgBTSw344.jpg

    wKioL1kPEi2ilT2iAADTyeGbVK8268.jpg

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

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

    wKiom1kPEk7hXQXOAAIEsheyjIc215.jpg

    查看server-key.pem的权限

    wKioL1kPEl-Qu0P2AACB6PoDlqw037.jpg

    修改权限并重启mysqld

    wKioL1kPEmugvi-CAAA7gZCkB3o877.jpg

    再次查看mysqld错误日志

    wKiom1kPEoyxMCFVAAIySH1erOw409.jpg

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

    wKioL1kPEqaR1y8ZAAF5o5SHzdE482.jpg

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

    wKiom1kPEr-yafSgAACYfAL7gC0528.jpg

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

    wKioL1kPEtjw434eAAFVWNa48-k012.jpg

    wKiom1kPEuuhqv5fAABv4ZGrO7M715.jpg

  6. 查看master的状态

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

    wKiom1kPE0-AsTyHAAHpQNqJpuk590.jpg

    wKiom1kPE2LjFCtyAABt34ZsIb4482.jpg

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

    wKioL1kPE6WgmM0gAAEdmnTmZtY336.jpg

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

    wKioL1kPE7qQ4h1_AADIacU_cFM497.jpg

  9. 设置client-key.pemr权限

    wKioL1kPE9XAybs0AADuRR9dDEA020.jpg

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

    wKioL1kPE_nCFpJ8AAGa1S4g-Tw803.jpg

    wKiom1kPE_rhteq5AABhBLAQhTI986.jpg

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

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

    登录slave的数据库

    wKioL1kPFDKxHExzAAE9n0CxknA762.jpg 

    测试ssl连接是否成功

    wKioL1kPFJDyt5nTAAFFqHuW1dk347.jpg

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

    wKiom1kPFKqiW4MAAADkz59YXBk918.jpg

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

    wKiom1kPFM6BcH9RAAEXaAkwmp4847.jpg

    wKiom1kPFPKTOoTIAAFCwrncOnA259.jpg

  14. 测试

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

    wKiom1kPFQ7htZuzAAFcSmGbQy0796.jpg

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

    wKioL1kPFR3gzjrAAALLeaY1Mog584.jpg