小生博客:http://xsboke.blog.51cto.com
专注于为中小企业提供成都做网站、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业兴山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
-------谢谢您的参考,如有疑问,欢迎交流
目录:
--------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查看数据是否同步