博主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默认安装了mariadb-libs,所以先要卸载掉
先查看本系统是否安装mariadb
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
cmake –version ---查看cmake版本
安装ncurses
安装bison
安装bootst
3)创建mysql用户和用户组及目录
3、编译安装mysql并优化
解压mysql源码包:
注:若要重新运行cmake配置,需要删除CMakeCache.txt文件(即前面的配置、编译、安装后发现有错误,我们这时候无须重头来只需要删除CMakeCache.txt文件)
优化Mysql的执行路径:
4、设置权限并初始化MySQL系统授权表
说明:(5.7.6版本以后的可采用安装模式或者可以使用非安装模式)
以防万一,再次改一下属主和属组
5、创建配置文件
修改my.cnf配置文件:
6、配置mysql自动启动
访问MySQL数据库:
修改数据库管理员用户root的密码(随机密码往往很难记忆,我们要修改成自己的密码)
7、实现基于ssl安全连接的主从复制
1)在主mysql创建SSL/RSA文件
那么在配置主从复制之前可以在从mysql上用SSL连接主服务器试试:
下面测试主从复制:
先在master上写入一些数据:
去slave上验证一下,数据是否同步:
以上同步成功。
总结:
SSL(Secure SocketsLayer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。复制默认是明文进行传输的,通过SSL加密可以大大提高数据的安全性。