CentOS7安裝MySQL5.7數據庫以及配置
一、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數據庫以及配置