1. 程式人生 > >mysql5.7:mysql安裝和基於SSL加密的主從復制(詳細剖析)

mysql5.7:mysql安裝和基於SSL加密的主從復制(詳細剖析)

mysql ssl db 數據 加密傳輸

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

小生 Q Q1770058260

-------謝謝您的參考,如有疑問,歡迎交流


目錄:


--------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數據庫

技術分享

Cmakecmake需要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. 修改slavemy.cfg文件指定中繼日誌及中繼日誌清單的存放位置

技術分享

8. 將master生成的證書傳送給slave

技術分享

9. 設置client-key.pemr權限

技術分享

10. 在slave的配置文件中添加證書和密鑰對存放的位置

技術分享

技術分享

重啟後最好查看一下mysql的錯誤日誌,是否出現了錯誤信息

11. 查看ssl是否被支持並進行測試

登錄slave的數據庫

技術分享

測試ssl連接是否成功

技術分享

12. Mysql5.7的每個服務器都擁有一個獨一的UUID號(擴展知識)

技術分享

13. 在slave設置同步並且啟用從功能

技術分享

技術分享

14. 測試

首先在master創建數據庫和表並插入數據

技術分享

然後在slave查看數據是否同步

技術分享



本文出自 “小生blog” 博客,請務必保留此出處http://xsboke.blog.51cto.com/12096269/1922949

mysql5.7:mysql安裝和基於SSL加密的主從復制(詳細剖析)