1. 程式人生 > >CentOS7安裝MySQL5.7數據庫以及配置

CentOS7安裝MySQL5.7數據庫以及配置

oracle 數據庫 固態硬盤 c語言 最大的


一、MySQL5.7主要特性:


原生架構支持centos7的Systemd

(1.)更好的性能:對於多核的CPU、固態硬盤、鎖有著更好的優化、更好的innoDB存儲引擎。

(2.)更為健壯的復制功能:復制帶來了數據完全不丟失的方案,傳統金融客戶也

可以選擇使用MySQL數據庫。

(3.)新增sys庫:以後這會是DBA訪問最頻繁的庫

(4.)更好的優化器:優化器的代碼重構的意義將在5.7版本及以後的版本中帶來巨大的改進

oracle官方正在解決MySQL之前最大的難題,原生JSON類型的支持

註意:JSON(JavaScript object Notation)是一種輕量級的數據交換格式。

JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣

(包括C、C++、C#、Java、JavaScript、Perl、Python等)。

這些特性使JSON成為理想的數據交換語言。易於閱讀和編寫,同時易於機器解析

和生成(一般用於提升網絡傳輸速率)。


JSON語法是JavaScript對象表示語法的子集

  • 數據在鍵值對中

  • 數據由逗號分隔

  • 花括號保存對象

  • 方括號保存數組

用JSON編寫的文件,可以代替.yaml格式的文件。(dockerkubernetes中的用的到,創建RC)。


註:mysql-5.6.3 已經支持了多線程的主從復制


二、源碼編譯安裝MySQL5.7


1.系統環境:centos7.2x64位

技術分享

因為centos7.2默認安裝了mariadb-libs,所以先要卸載掉。

技術分享


2.安裝相關依賴包


cmake:由於從MySQL5.5版本開始棄用了常規的configure編譯方法,所以需要CMAKE編譯器,用

於設置mysql的編譯參數。如:安裝目錄、數據存放目錄、字符編碼、排序規則等。

Boot: 從Mysql5.7.5開始Boost庫是必需的,MySQL源碼中用到了C++的Boost庫,要求必須安

裝boost1.59.0或以上版本。

GCC是Linux下的C語言編譯工具,MySQL源碼編譯完全由C和C++編寫,要求必須安裝GCC

bison:Linux下C/C++語法分析器

ncurses:字符終端處理庫


下載所需軟件:

下載cmake-3.5.tar.gz http://www.cmake.org/download

下載ncurses-5.9.tar.gzftp://ftp.gnu.org/gnu/ncurses/

下載bison-3.0.4.tar.gzhttp://ftp.gnu.org/gnu/bison/

下載mysql-5.7.13.tar.gz

wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.18.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


3.安裝cmake及相關下載好的軟件


1.安裝cmake:

技術分享

技術分享

cmake -version 查看版本:

技術分享

2.安裝ncurses:

技術分享

3.安裝bison:

技術分享

4.安裝boost:

因為boost是一個提前編譯好的軟件所以這裏無需在進行配置和編譯,所以直接移動到指定的目錄即可直接使用。

技術分享


4.創建MySQL用戶和用戶組及目錄


新建MySQL組合MySQL用戶,禁止登錄shell ,-r選項:代表系統用戶

技術分享


5.編譯安裝MySQL5.7.18


(1.)解壓mysql源碼包:

技術分享

(2.)執行cmake命令前進行編譯配置:

技術分享

註意:在mysql5.5-5.6版本中是不需要加上-DWITH_SYSTEMD=1參數,否則會報錯!!!

(3.)開始編譯安裝:

技術分享

配置解釋:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql :mysql安裝的根目錄

-DMYSQL_DATADIR=/usr/local/mysql/data :mysql數據庫文件存放目錄

-DSYSCONFDIR=/etc :mysql配置文件所在目錄

-DWITH_MYISAM_STORAGE_ENGINE=1 :添加MYISAM引擎支持

-DWITH_INNOBASE_STORAGE_ENGINE=1 :添加InnoDB引擎支持

-DWITH_ARCHIVE_STORAGE_ENGINE=1 :添加ARCHIVE引擎支持

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock :指定mysql.sock位置

-DWITH_PARTITION_STORAGE_ENGINE=1 :安裝支持數據庫分區

-DEXTRA_CHARSETS=all :使mysql支持所有的擴展字符

-DDEFAULT_CHARSET=utf8 :設置mysql的默認字符集為utf-8

-DDEFAULT_COLLATION=utf8_general_ci :設置默認字符集校對規則

-DWITH_SYSTEMD=1 :可以使用systemd控制mysql服務

-DWITH_BOOST=/usr/local/boost :指向boost庫所在目錄


註意:更多參數執行: #cmake . -LH


為了加快編譯速度可以按照下面的方式去編譯安裝:

make -j $(grep processor /proc/cpuinfo | wc -l )

-j 參數表示根據CPU核數指定編譯時的線程數,可以加快編譯速度。默認為1個線程編譯。


註意:若要重新運行cmake配置,需要刪除CMakeCache.txt文件

#make clean

#rm -f CMakeCache.txt


6.優化MySQL的執行路徑


技術分享


技術分享


7.設置權限並初始化MySQL系統授權表


技術分享

技術分享

註意: 以上root初始化操作時要加--initialize參數,生成一個隨機密碼(註意保存密碼登錄時使用)


MySQL5.7.6之前的版本執行這個腳本進行初始化系統數據庫:

/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql

--datadir=/usr/local/mysql/data


有密碼的初始化:

#bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

無密碼的初始化:

#/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data


8.創建配置文件


vim /etc/my.cnf

技術分享

以上服務器啟動失敗,查看錯誤日誌文件

技術分享

在mysqld.service,把默認的pid文件指定到了/var/run/mysqld目錄,而並沒有事先建立該目錄,因此要手動建立該目錄並把權限賦給MySQL用戶。(這種方法是臨時的,因為/var/run/下的目錄關機就沒有了)。


技術分享

或者修改/usr/lib/system/system/mysqld.service:

技術分享


#systemctl daemon-reload


技術分享

技術分享




本文出自 “KANGSHUO” 博客,轉載請與作者聯系!

CentOS7安裝MySQL5.7數據庫以及配置