博主QQ:819594300mysql
博客地址:http://zpf666.blog.51cto.com/sql
有什麼疑問的朋友能夠聯繫博主,博主會幫大家解答,謝謝支持!docker
另外本博文內使用的所有軟件和文件,博友若有須要能夠去我百度雲分享下載,分享地址是:數據庫
連接:http://pan.baidu.com/s/1bpaOqa7 密碼:r2jscentos
1、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)。
2、安裝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加密能夠大大提升數據的安全性。