博主QQ:819594300

博客地址:http://zpf666.blog.51cto.com/

有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持!

另外本博文内使用的全部软件和文件,博友如有需要可以去我百度云分享下载,分享地址是:

链接:http://pan.baidu.com/s/1bpaOqa7 密码:r2js

一、MySQL 5.7主要特性:

原生支持Systemd

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

更好的InnoDB存储引擎

更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库。

注:从mysql5.6.3版本开始就已经支持了多线程的主从复制

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

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

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

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

数据在键值对中

数据由逗号分隔

花括号保存对象

方括号保存数组

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

二、安装mysql5.7.13

1、系统环境:centos7.2x86_64

wKiom1jRHRbR1xfEAAEZgegEhH8122.jpg

注:因为centos7.2默认安装了mariadb-libs,所以先要卸载掉

先查看本系统是否安装mariadb

wKioL1jRHRfx_l-xAAPNuBAOU8U080.jpg

2、安装依赖包

注: 相关依赖包的作用

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:字符终端处理库

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)安装CMAKE及必要的软件

安装cmake

wKiom1jRHRijUFf1AAGGsHALKGY536.jpg

cmake –version ---查看cmake版本

wKioL1jRHRiQt2x8AAC1roJ1PWw682.jpg

安装ncurses

wKioL1jRHRmhuy_SAAEVi3ZvrQA401.jpg

安装bison

wKiom1jRHRnQCG1-AAEKc8rh6DU218.jpg

安装bootst

wKioL1jRHRry4z31AAE8mBVBLbo858.jpg

3)创建mysql用户和用户组及目录

wKiom1jRHRqSnYqFAAIezNxPaNw866.jpg

wKioL1jRHRvTGZDiAAGn7LYMwm4984.jpg

3、编译安装mysql并优化

解压mysql源码包:

wKiom1jRHRvzCynlAAJMbhwo4aI319.jpg

wKiom1jRHR2ysmE-AALRuMRiqTc541.jpg

注:若要重新运行cmake配置,需要删除CMakeCache.txt文件(即前面的配置、编译、安装后发现有错误,我们这时候无须重头来只需要删除CMakeCache.txt文件)

wKioL1jRHR6CuAWmAAL7OzRA9qo805.jpg

优化Mysql的执行路径:

wKiom1jRHR6C9z7XAAB2XLFLGyY417.jpg

wKioL1jRHR-RlWrUAAENtw1LGlU849.jpg

wKioL1jRHR_iPNNSAAClfdCrusg272.jpg

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

wKiom1jRHSCCV5KcAAOEazBcqQo492.jpg

说明:(5.7.6版本以后的可采用安装模式或者可以使用非安装模式)

wKiom1jRHSGTd7IfAAMQupzlt9E097.jpg

以防万一,再次改一下属主和属组

wKioL1jRHSLQuIMoAACcrXX2Y_A782.jpg

5、创建配置文件

wKiom1jRHSLSB-aFAAGUOvkD7Tc893.jpg

修改my.cnf配置文件:

wKioL1jRHSKyq-glAAByWHXpkfE474.jpg

wKiom1jRHSXTk7mjAAaKeb8yaJA730.jpg

6、配置mysql自动启动

wKioL1jRHSaSrNbHAAG_S0XnAuc694.jpg

wKiom1jRHSfDbuvVAAJA6l_lgAw458.jpg

wKioL1jRHSzzj6dyAAG02X9ugB0266.jpg

wKioL1jRHS3S8FM2AACBPHXVIUU496.jpg

wKiom1jRHTLDHZH3AAGEBW051CE204.jpg

wKiom1jRHTaR_xLtAAFnTAlOMJY635.jpg

wKioL1jRHTygZ75vAAHjQLXp_Xw404.jpg

wKioL1jRHT-RxmZLAAD-ktRfBAA391.jpg

访问MySQL数据库:

wKiom1jRHUfxOtAWAAJsuigaoG4680.jpg

修改数据库管理员用户root的密码(随机密码往往很难记忆,我们要修改成自己的密码)

wKiom1jRHU2iK5rKAAG1C49n9H0632.jpg

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

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

wKioL1jRHVTyTaBjAAJPvuA-tZ4150.jpg

wKioL1jRHXahJnU2AAFvyHPNHIE805.jpg

wKiom1jRHX7wUc_QAAJYjqGcJe4835.jpg

wKioL1jRHYLCLURPAAKWRXczvXc472.jpg

wKiom1jRHYmhAl_UAAIwF24OyYs853.jpg

wKioL1jRHY2BBZ6jAAFloJNC6oI875.jpg

wKioL1jRHZnzhx7XAAN4K4-p21E670.jpg

wKioL1jRHaShaELPAAOObCrsEw4975.jpg

wKiom1jRHamztSgFAAHBJnnhqcA431.jpg

wKiom1jRHa6jNbzwAAGXEYqn2oo052.jpg

wKioL1jRHbThvgSbAAHfQK2iYoI924.jpg

wKioL1jRHbnjxaLcAAG1EJBGBNc724.jpg

wKiom1jRHb6wT6qsAAFucddm4Cw475.jpg

wKiom1jRHcLxxvATAAGC0HAP55Q989.jpg

wKioL1jRHceRN2vrAAG_GlW8WbE526.jpg

wKiom1jRHdSgN16yAAPbT1f1VVI575.jpg

wKioL1jRHdizopxfAAFAe7oHzqI229.jpg

wKioL1jRHd7AImS1AAH_YqUM8Rs292.jpg

wKiom1jRHeHSg18jAAEk6GMfo04386.jpg

wKiom1jRHeiDnAwYAAJGIwgJmM4952.jpg

wKioL1jRHezChYcXAAFxCQ8D3OE188.jpg

wKioL1jRHfGQscdGAAFh6MjKp78308.jpg

wKiom1jRHfXxUodZAAFfaX0nZ1Q488.jpg

wKioL1jRHf6A5t5eAALWEx1SY0s754.jpg

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

wKiom1jRHgKDOc24AAGablxMJgU488.jpg

wKiom1jRHgOTR5gkAAGxDKm7H9M358.jpg

wKioL1jRHgOQH1r2AAFmOKeKMgo592.jpg

wKiom1jRHgTDKt9VAADt2RqGy1s150.jpg

wKioL1jRHgSDzU0uAAF1O4jQMLA941.jpg

wKioL1jRHgWTTaOgAAND997iulI759.jpg

wKiom1jRHgbQNfv7AAD3T3bSJig491.jpg

wKiom1jRHgawQGDMAAIt7rKwrS8855.jpg

wKioL1jRHgei2crYAAGt2Af0RqM152.jpg

wKioL1jRHiLDiXbwAAK749-iqYU129.jpg

下面测试主从复制:

先在master上写入一些数据:

wKiom1jRHiOCrDZgAAML9shvt6g588.jpg

去slave上验证一下,数据是否同步:

wKioL1jRHiTSvCZQAALhxiYpcBg625.jpg

wKiom1jRHiXDFBCdAAIaAU8MOLM695.jpg

以上同步成功。

总结:

SSL(Secure SocketsLayer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。复制默认是明文进行传输的,通过SSL加密可以大大提高数据的安全性。