這篇文章主要講解了如何用源碼編譯安裝MySQL8.0.20,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比和布克賽爾蒙古網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式和布克賽爾蒙古網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋和布克賽爾蒙古地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。1 概述
本文章主要講述了如何從源碼編譯安裝MySQL社區(qū)版8.0.20,首先會介紹一些編譯安裝的相關(guān)知識,然后開始編譯安裝
2 源碼編譯安裝的相關(guān)知識
2.1 make與configure
make是一個編譯的命令,會在當(dāng)前的目錄下尋找Makefile這個文件,Makefile文件記錄了源代碼如何編譯的詳細(xì)信息。而configure是由軟件開發(fā)商編寫的一個檢測程序檢測用戶的開發(fā)環(huán)境,檢測完畢后生成Makefile文件。通常,configure會檢測如下內(nèi)容:
2.2 Tarball文件
Tarball文件其實(shí)就是將源代碼以tar打后壓縮的文件。通常使用gzip進(jìn)行壓縮,一般擴(kuò)展名為.tar.gz或.tgz,不過由于bzip2以及xz等技術(shù)壓縮效果比gzip好,因此文件名也會變成擴(kuò)展名也會變成.tar.bz2或.tar.xz之類的。通常一個Tarball文件有:
2.3 源碼編譯安裝相關(guān)組件
2.3.1 編譯器
需要有編譯器才能進(jìn)行編譯操作,通常使用的是gcc。
2.3.2 make+autoconfig
以Tarball形式發(fā)布的軟件,為了簡化編譯流程,通常需要make來根據(jù)目標(biāo)文件文件的依賴性進(jìn)行編譯,但是由于make需要Makefile,因此需要autoconfig生成Makefile。
2.3.3 函數(shù)庫
需要內(nèi)核提供的庫以及相關(guān)的include文件。
2.4 靜態(tài)庫與動態(tài)庫
函數(shù)庫分為動態(tài)庫與靜態(tài)庫兩種類型,絕大部分放在/lib與/lib64中。
2.4.1 靜態(tài)庫
擴(kuò)展名為.a,編譯時會直接整合到執(zhí)行程序中,所以利用靜態(tài)庫生成的文件會比較大一些,編譯后的可執(zhí)行文件可以直接運(yùn)行,無需依賴外部函數(shù)庫。另外升級難度較大,因?yàn)槭侵苯诱线M(jìn)程序中,升級了靜態(tài)庫的話需要重新編譯。
2.4.2 動態(tài)庫
擴(kuò)展名為.so,在編譯時不像靜態(tài)庫一樣,動態(tài)庫在程序中只有一個指針,當(dāng)可執(zhí)行程序需要用到函數(shù)庫的功能時,才會讀取函數(shù)庫來使用,生成的可執(zhí)行文件會比較小一點(diǎn),但是不能獨(dú)立執(zhí)行編譯出來的程序。另外升級比較方便,不需要重新編譯,因?yàn)閳?zhí)行文件會直接指向新的函數(shù)庫文件。
2.5 編譯安裝的一般步驟
注意,以上步驟都是有順序的,而且前一個步驟執(zhí)行失敗則后一個步驟也不能執(zhí)行,也就是說需要前一個步驟執(zhí)行成功才能進(jìn)行下一步的操作。完成以上六步就能編譯安裝了,一般需要進(jìn)行一些后續(xù)處理,比如,添加可執(zhí)行文件路徑到PATH,添加頭文件與庫文件到/usr/include與/etc/ld.so.conf.d中,添加聯(lián)機(jī)幫助文件到/etc/man_db.conf中。
2.6 編譯安裝前的心理準(zhǔn)備
這里是最后的提示了,未安裝之前還可以ctrl+w關(guān)閉本頁面,避免無數(shù)的痛苦。
編譯安裝最常見的問題就是版本與依賴的問題,版本問題容易處理,可以通過包管理器進(jìn)行升級或者手動升級,至于依賴問題,包管理器安裝的話很容易,編譯安裝的話會非常頭疼,因?yàn)椴恢滥硞€依賴下面還需要安裝多少個依賴。
所以,需要準(zhǔn)備充足的時間,還有充分的耐心,去解決無數(shù)的問題,才能成功進(jìn)行編譯安裝MySQL與Workbench這種大型軟件。
不廢話了,開始吧。
3 安裝MySQL
3.1 安裝依賴
MySQL所需依賴如下:
3.2 包管理器安裝
筆者的Debian系,使用apt即可:
sudo apt-get install -y bison git hostname libncurses-dev libssl-dev make openssl pkg-config doxygen cmake make