日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

怎么查看MySQL 源码编译了什么_Mysql 源码编译教程贴

發(fā)布時間:2023/12/1 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么查看MySQL 源码编译了什么_Mysql 源码编译教程贴 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題外話:這是一篇教程貼,不僅學(xué)的是mysql的編譯,還是一些編譯的知識.我也是一個菜鳥,寫一些感悟和心得,有什么問題可以批評指正,謝謝!

如果只是為了安裝請移到我的另一篇安裝貼: Mysql安裝貼

環(huán)境:

OS: CentOS 6.6x64 mini

mysql: mysql-5.6.25

1. mysql 下載:

http://dev.mysql.com/downloads/mysql/

說明:這個網(wǎng)站有時候JS被墻,你選擇了Source Code會沒有反應(yīng),所以可以考慮翻翻翻翻翻翻Q或者直接點下邊的鏈接

下載地址: http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.27.tar.gz

2.安裝:

☆ 禁掉selinx

★ 使用下邊命令獲取selinux:

[root@centos ~]# getenforce

Disabled

Disabled 已經(jīng)禁用了,可以跳過這步了

Enforcing 開啟狀態(tài)

Permissive 臨時禁用

★?使用下邊命令禁用selinux (第一條臨時禁用,第二條永久禁用)

[root@centos ~]# setenforce 0[root@centos~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

★?檢查下是否修改正確

[root@centos ~]# getenforce

Permissive

[root@centos~]# cat /etc/selinux/config

確認里邊 SELINUX=disabled ?(selinux配置文件一定要確保修改正確,如果錯誤系統(tǒng)就無法正常啟動.)

☆ 創(chuàng)建mysql賬戶

groupadd mysql

useradd-g mysql mysql

☆?依賴包

yum install cmake wget gcc -y

Cmake: 因為mysql 5.6支持cmake安裝所以我們采用cmake安裝.

wget是linux下載工具,下邊就是下載mysql源碼包(下載到當(dāng)前目錄下)

[root@centos ~]# wget http://101.44.1.118/files/90110000038859AB/nchc.dl.sourceforge.net/project/mysql.mirror/MySQL%205.6.25/mysql-5.6.25.tar.gz

☆?解壓mysql源碼包,并進入到解壓目錄

[root@centos ~]# tar xvf mysql-5.6.25.tar.gz

[root@centos~]# cd mysql-5.6.25

☆ 配置

cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/usr/local/mysql/data \-DSYSCONFDIR=/etc \-DWITH_MYISAM_STORAGE_ENGINE=1\-DWITH_INNOBASE_STORAGE_ENGINE=1\-DWITH_MEMORY_STORAGE_ENGINE=1\-DWITH_READLINE=1\-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \-DMYSQL_TCP_PORT=3306\-DENABLED_LOCAL_INFILE=1\-DWITH_PARTITION_STORAGE_ENGINE=1\-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci

-DCMAKE_INSTALL_PREFIX= 指向mysql安裝目錄(安裝在哪里)

-DMYSQL_DATADIR= mysql的數(shù)據(jù)目錄

-DSYSCONFDIR= Mysql的配置文件(配置文件放哪里)

這里配置會出錯,請移步后邊的廢話部分,帶你裝逼帶你飛..

☆ ?編譯并安裝(過程比較長,耐心等待)

make

make install

在群里發(fā)現(xiàn)很多人在編譯的時候容易出錯,而且配置編譯完了也不能確定到底有沒有操作成功.雖然下文我有解釋,但是我還是要提一下linux下有個$?.. 執(zhí)行完了不確定緊接著執(zhí)行:echo $?

如果返回 0 說明上條命令執(zhí)行成功,非0的任意數(shù)代表有錯誤.

☆ ?配置Mysql

★?進入到mysql的安裝目錄

[root@centos ~]#cd /usr/local/mysql

★?設(shè)置權(quán)限

chown -R mysql .chgrp -R mysql .

★?初始化數(shù)據(jù)庫

scripts/mysql_install_db --user=mysql

★?設(shè)置權(quán)限

chown -R root .chown -R mysql data

★?啟動數(shù)據(jù)庫

bin/mysqld_safe --user=mysql &

很多朋友會說寫個mysql的啟動腳本,干嘛要自己寫,mysql已經(jīng)提供了:

cp support-files/mysql.server /etc/init.d/mysql.server

這樣就可以了?service mysql.server start

☆ 修改$PATH

$PATH是什么?很多人都不清楚,到底做什么的?這里簡短的說一下,$PATH就是執(zhí)行文件路徑的變量,當(dāng)我們執(zhí)行一個指令的時候,[mysql],系統(tǒng)會依據(jù)PATH的設(shè)定去每個PATH定義的目錄下搜尋文件名為mysql的可執(zhí)行文件.如果在 PATH 定義的目錄中含有多個文件名為 ls 的可執(zhí)行文件, 那么先搜尋到的同名文件先被執(zhí)行!

[root@centos ~]#which mysql

/usr/bin/which: no mysql in()

沒有找到這個mysql從哪里找就是從PATH加載的這么多目錄里邊去找.

[root@centos ~]#echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

這個是系統(tǒng)定義好的PATH目錄:

[root@centos ~]#sed -i '/export PATH/i\\PATH=$PATH:/usr/local/mysql/bin' .bash_profile

[root@centos ~]#source .bash_profile

直接將/usr/local/mysql/bin追加到PATH后邊,我使用sed,為了新手,如果你用vi可以自行編輯..

這樣就可以使用mysql

[root@centos ~]#which mysql

/usr/local/mysql/bin/mysql

3.廢話篇:

教程篇,就得有廢話...廢話開始:

源碼的安裝就在編譯這里,配置編譯,配置什么?怎么配置?如何獲取,最好的方法就是官方文檔,配置就是擴展一些功能,官方文檔有解釋每一個配置項的作用和默認是否被配置進去.還有就是源碼包里有個INstall-Source.txt.寫的很詳細有幾千行,在5000多行的地方<2.9 Installing MySQL from Source>有說如何安裝...

配置是配置,編譯是編譯.安裝是安裝. 配置是用的cmake,編譯是make..安裝是make install.得確保每一步操作成功,進行下一步操作,怎么確認?看配置結(jié)束的提示,或者配置結(jié)束完緊接著輸入echo $? 如果返回0 就說明操作成功了,非零就是有問題.

編譯不一定能保證100%不出問題,教程貼就是教你改怎么編譯,說一些自己的心得.其他的錯誤就得靠經(jīng)驗了,沒有辦法把整個錯誤都列出來.

如果你按我操作的步驟肯定編譯會出錯:

錯誤信息的部分:

CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name.

CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.

其實看出來是C的問題了,C是干嘛的?這個就要增加自己的知識儲備了,如果不確定自己復(fù)制百度下,多看看解決方法:

yum install gcc -y

再來(再次執(zhí)行CMake),裝完發(fā)現(xiàn)第二個Cxx的報錯沒有解決.那就是C++的問題了

yum install gcc-c++

再執(zhí)行,發(fā)現(xiàn)上邊的錯誤沒有了,但是又有新的錯誤了

關(guān)鍵字:no suitable type found 百度百度

yum install ncurses-devel

問題沒解決,后來發(fā)現(xiàn)是刪除CMakeCache.txt 巨汗...

rm -rf?CMakeCache.txt

重新執(zhí)行Cmake的命令

編譯慢慢等..

中間有很多 found, not found

就是說有些依賴找到了,有些依賴沒有被找到.如果沒有報錯說明都不是致命的錯誤,可以以后某些功能沒裝上(沒有裝上怎么不辦?重新配置編譯安裝加上自己需要的功能,這些功能需要裝什么可以看官方文檔,或者網(wǎng)上找找..)

接下來編譯:

make

安裝:

make install

確定執(zhí)行成功,返回到配置Mysql,接著配置Mysql

好了到這里了,有什么錯誤的地方,有什么問題可以提出來...

順便貼上網(wǎng)上找到配置項的解釋:

-DCMAKE_INSTALL_PREFIX= 指向mysql安裝目錄

-DINSTALL_SBINDIR=sbin 指向可執(zhí)行文件目錄(prefix/sbin)

-DMYSQL_DATADIR=/var/lib/mysql 指向mysql數(shù)據(jù)文件目錄(/var/lib/mysql)

-DSYSCONFDIR=/etc/mysql 指向mysql配置文件目錄(/etc/mysql)

-DINSTALL_PLUGINDIR=lib/mysql/plugin 指向插件目錄(prefix/lib/mysql/plugin)

-DINSTALL_MANDIR=share/man 指向man文檔目錄(prefix/share/man)

-DINSTALL_SHAREDIR=share 指向aclocal/mysql.m4安裝目錄(prefix/share)

-DINSTALL_LIBDIR=lib/mysql 指向?qū)ο蟠a庫目錄(prefix/lib/mysql)

-DINSTALL_INCLUDEDIR=include/mysql 指向頭文件目錄(prefix/include/mysql)

-DINSTALL_INFODIR=share/info 指向info文檔存放目錄(prefix/share/info)

prefix官方推薦設(shè)為/usr

Storage Engine相關(guān)

類型csv,myisam,myisammrg,heap,innobase,archive,blackhole

若想啟用某個引擎的支持:-DWITH__STORAGE_ENGINE=1

如:

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

若想禁用某個引擎的支持:-DWITHOUT__STORAGE_ENGINE=1

如:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1

-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

-DWITHOUT_PARTITION_STORAGE_ENGINE=1

Library相關(guān)

-DWITH_READLINE=1 啟用readline庫支持(提供可編輯的命令行)

-DWITH_SSL=system 啟用ssl庫支持(安全套接層)

-DWITH_ZLIB=system 啟用libz庫支持(zib、gzib相關(guān))

-DWTIH_LIBWRAP=0 禁用libwrap庫(實現(xiàn)了通用TCP包裝的功能,為網(wǎng)絡(luò)服務(wù)守護進程使用)

-DMYSQL_TCP_PORT=3306 指定TCP端口為3306

-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 指定mysql.sock路徑

-DENABLED_LOCAL_INFILE=1 啟用本地數(shù)據(jù)導(dǎo)入支持

-DEXTRA_CHARSETS=all 啟用額外的字符集類型(默認為all)

-DDEFAULT_CHARSET=utf8 指定默認的字符集為utf8

-DDEFAULT_COLLATION=utf8_general_ci 設(shè)定默認排序規(guī)則(utf8_general_ci快速/utf8_unicode_ci準確)

-DWITH_EMBEDDED_SERVER=1 編譯嵌入式服務(wù)器支持

-DMYSQL_USER=mysql 指定mysql用戶(默認為mysql)

-DWITH_DEBUG=0 禁用debug(默認為禁用)

-DENABLE_PROFILING=0 禁用Profiling分析(默認為開啟)

-DWITH_COMMENT='string' 一個關(guān)于編譯環(huán)境的描述性注釋

總結(jié)

以上是生活随笔為你收集整理的怎么查看MySQL 源码编译了什么_Mysql 源码编译教程贴的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。