1. 程式人生 > >CMake 安裝MySQL5.7

CMake 安裝MySQL5.7

簡介

MySQL的安裝方式又很多,比如二進位制直接解壓,利用rpm包方式安裝,MySQL5.5之前可以用make,在MySQL5.5之後原始碼編譯需要用CMake。這裡簡單介紹一下如何原始碼安裝MySQL5.7。
一般二進位制的方式就可以了,如果需要定製可以用CMAKE。

前提

  1. CMake
  2. ncurses 函式庫
  3. 安裝的時候需要Boost C++庫,必須安裝Boost1.59.0,安裝之後,cmake需要加一個引數表明Boost檔案所在的位置
cmake . -DWITH_BOOST=/usr/local/boost_1_59_0  #這裡指定Boost位置

安裝

第一步:安裝CMake

yum install cmake -y

第二步:安裝依賴包

yum groupinstall "Development Tools" -y  #安裝開發包組,以防缺包
yum install ncurses  ncurses-devel gcc gcc-devel  gcc-c++  -y

第三步:建立mysql使用者

useradd -M -s /sbin/nologin  mysql

第四步:安裝MySQL5.7

原始碼包可以在官網下載,因為安裝需要Boost庫,所以這裡下載的原始碼包直接下載一個包含Boost的原始碼包

官網的下載地址
https://dev.mysql.com/downloads/mysql/

在這裡插入圖片描述

下載好之後,解壓

 tar xf mysql-boost-5.7.24.tar.gz
 cd mysql-5.7.24/

利用CMake構建MySQL5.7

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7 \
-DMYSQL_DATADIR=/usr/local/mysql5.7/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql5.7/data/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 \
-DWITH_BOOST=./boost/boost_1_59_0 

CMake編譯安裝過程會把指定的配置資訊硬編碼到程式檔案中
這些配置項可以根據需要進行調整,

構建完成之後直接安裝

make && make install

第五步:初始化資料庫

/usr/local/mysql5.7/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql5.7  --datadir=/usr/local/mysql5.7/data

初始化之後會預設給你生成臨時密碼,這個要先記一下
如果不需要它幫你生成密碼可以使用–initialize-insecure選項

第六步:設定一下路徑以及許可權

chown -R mysql.mysql  /usr/local/mysql5.7 
echo 'PATH=/usr/local/mysql5.7/bin/:$PATH' >>/etc/profile
source /etc/profile 

在這裡插入圖片描述

第七步:建立配置檔案/etc/my.cnf

這裡的引數需要按照部署的環境更改

[[email protected] mysql-5.7.24]# cat /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql5.7
datadir=/usr/local/mysql5.7/data
socket=/usr/local/mysql5.7/data/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/usr/local/mysql5.7/data/err.log
pid-file=/usr/local/mysql5.7/data/mysql.pid

!includedir /etc/my.cnf.d

第八步:啟動資料庫

還有個點比較奇怪,MySQL5.7可能需要手動建立錯誤日誌檔案

touch /usr/local/mysql5.7/data/err.log
chown -R mysql.mysql  /usr/local/mysql5.7

啟動資料庫

mysqld_safe &

在這裡插入圖片描述

第九步:連線資料庫

mysql -uroot -p -S /usr/local/mysql5.7/data/mysql.sock

在這裡插入圖片描述
參考官方文件:
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html