博主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

centos7.2安装mysql5.7.13_centos

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

先查看本系统是否安装mariadb

centos7.2安装mysql5.7.13_centos_02

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:///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

centos7.2安装mysql5.7.13_centos_03

cmake –version ---查看cmake版本

centos7.2安装mysql5.7.13_centos_04

安装ncurses

centos7.2安装mysql5.7.13_mysql_05

安装bison

centos7.2安装mysql5.7.13_centos_06

安装bootst

centos7.2安装mysql5.7.13_centos_07

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

centos7.2安装mysql5.7.13_centos_08

centos7.2安装mysql5.7.13_mysql_09

3、编译安装mysql并优化

解压mysql源码包:

centos7.2安装mysql5.7.13_mysql_10

centos7.2安装mysql5.7.13_mysql_11

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

centos7.2安装mysql5.7.13_mysql_12

优化Mysql的执行路径:

centos7.2安装mysql5.7.13_centos_13

centos7.2安装mysql5.7.13_centos_14

centos7.2安装mysql5.7.13_mysql_15

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

centos7.2安装mysql5.7.13_centos_16

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

centos7.2安装mysql5.7.13_centos_17

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

centos7.2安装mysql5.7.13_mysql_18

5、创建配置文件

centos7.2安装mysql5.7.13_centos_19

修改my.cnf配置文件:

centos7.2安装mysql5.7.13_centos_20

centos7.2安装mysql5.7.13_centos_21

6、配置mysql自动启动

centos7.2安装mysql5.7.13_mysql_22

centos7.2安装mysql5.7.13_mysql_23

centos7.2安装mysql5.7.13_mysql_24

centos7.2安装mysql5.7.13_mysql_25

centos7.2安装mysql5.7.13_centos_26

centos7.2安装mysql5.7.13_mysql_27

centos7.2安装mysql5.7.13_centos_28

centos7.2安装mysql5.7.13_mysql_29

访问MySQL数据库:

centos7.2安装mysql5.7.13_centos_30

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

centos7.2安装mysql5.7.13_centos_31

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

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

centos7.2安装mysql5.7.13_mysql_32

centos7.2安装mysql5.7.13_centos_33

centos7.2安装mysql5.7.13_centos_34

centos7.2安装mysql5.7.13_mysql_35

centos7.2安装mysql5.7.13_mysql_36

centos7.2安装mysql5.7.13_centos_37

centos7.2安装mysql5.7.13_centos_38

centos7.2安装mysql5.7.13_centos_39

centos7.2安装mysql5.7.13_centos_40

centos7.2安装mysql5.7.13_centos_41

centos7.2安装mysql5.7.13_mysql_42

centos7.2安装mysql5.7.13_centos_43

centos7.2安装mysql5.7.13_centos_44

centos7.2安装mysql5.7.13_mysql_45

centos7.2安装mysql5.7.13_centos_46

centos7.2安装mysql5.7.13_mysql_47

centos7.2安装mysql5.7.13_centos_48

centos7.2安装mysql5.7.13_centos_49

centos7.2安装mysql5.7.13_centos_50

centos7.2安装mysql5.7.13_mysql_51

centos7.2安装mysql5.7.13_mysql_52

centos7.2安装mysql5.7.13_centos_53

centos7.2安装mysql5.7.13_centos_54

centos7.2安装mysql5.7.13_mysql_55

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

centos7.2安装mysql5.7.13_mysql_56

centos7.2安装mysql5.7.13_centos_57

centos7.2安装mysql5.7.13_centos_58

centos7.2安装mysql5.7.13_centos_59

centos7.2安装mysql5.7.13_centos_60

centos7.2安装mysql5.7.13_centos_61

centos7.2安装mysql5.7.13_mysql_62

centos7.2安装mysql5.7.13_mysql_63

centos7.2安装mysql5.7.13_mysql_64

centos7.2安装mysql5.7.13_mysql_65

下面测试主从复制:

先在master上写入一些数据:

centos7.2安装mysql5.7.13_mysql_66

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

centos7.2安装mysql5.7.13_mysql_67

centos7.2安装mysql5.7.13_mysql_68

以上同步成功。

总结:

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