mysql編譯源碼
用vs code 就可以了。
Visual Studio Code
Visual Studio Code(簡稱VS Code)是由微軟開發的,同時支持Windows、linux和macOS操作系統的開源文本編輯器。它支持調試,內置了Git 版本控制功能,同時也具有開發環境功能,例如代碼補全(類似於IntelliSense)、代碼片段、代碼重構等。該編輯器支持用戶自定義配置,例如改變主題顏色、鍵盤快捷方式、編輯器屬性和其他參數,還支持擴展程序並在編輯器中內置了擴展程序管理的功能。
安裝LLDB
LLDB是LLVM編譯器的一部分,推薦使用Homebrew安裝LLVM工具集,不建議使用系統自帶的LLDB,安裝前必須先創建證書否則無法安裝,步驟如下:
創建完成後,開始安裝LLVM
brew install llvm --with-python@2--with-lldb
安裝插件
VS Code自帶有debug功能,這里我推薦使用LLDB Debugger插件。
接下來,為項目配置調試參數。
配置調試參數
使用VS Code打開MySQL源碼目錄,在側邊欄選擇debug欄目,添加配置,program輸入需要調試的程序路徑,這里選擇你編譯好的mysqld路徑,args輸入程序啟動所需的參數,通常會指定mysqld的配置文件。這樣就配置好了,是不是很簡單。
啟動調試
點擊啟動按鈕,啟動後如果沒有設置斷點會mysqld會正常啟動,如果觸發了斷點會如下圖顯示。
整個調試窗口基本分為六部分,所有的調試操作都在這里完成:
1:顯示變數信息
2:設置重點關注的變數
3:顯示調用棧信息
4:設置斷點信息,在代碼行號前也可以設置斷點
5:代碼顯示區域,上方是調試按鈕,包括 continue/stepover/step in/step out/restart/stop
6:調試終端輸入輸出區
斷點設置
在代碼行號前點擊即可在該行為設置斷點,也可以根據條件設置斷點。以設置ConditionalBreakpoint為例,當程序啟動後會按照你設置的條件表達式判斷是否觸發斷點。
Conditional Breakpoint這種方式用在目標變數達到某條件時觸發斷點,其餘則跳過繼續執行。比如:設置變數等於目標表名時觸發斷點,其餘表則跳過,相對函數名斷點省去很多手工跳過操作。
遠程調試
假如你想調試遠程Linux伺服器上的MySQL上面的方法就不合適了,這時需要遠程調試。lldb和gdb都支持遠程調試,這里以lldb為例。
需要先在遠程主機上安裝lldb,使用yum安裝,源地址在這里http://mirror.centos.org/centos/7/sclo/x86_64/rh
remote$ yum install -y llvm-toolset-7
安裝完成後,啟動lldb-server
remote$ /opt/rh/llvm-toolset-7/root/usr/bin/lldb-serverplatform --listen"*:9191"--server
接下來,在VS Code調試界面中新增配置項。
{
"type":"lldb",
"request":"attach",
"name":"Remote attach",
"program":"~/mysql5626/usr/local/mysql/bin/mysqld",
"pid":"<target_pid>",
"initCommands": [
"platform select remote-linux",
"platform connect connect://<remote_host>:9191"
],
"sourceMap": {
"/export/home/pb2/build/sb_0-15908961-1436910670.17/mysql-5.6.26":"/Users/hongbin/workbench/mysql-server"
}
},
program:本機也要拷貝一份目標程序,載入
pid:填寫遠程主機的mysqld進程id
sourceMap:填寫mysqld編譯的代碼路徑與本機代碼庫路徑的映射,這樣調試時代碼才可以和程序關聯在一起看
注意:記得調試前將代碼切換到與目標程序版本一致的branch
Ⅱ mysql源代碼編譯安裝錯誤,請高手指點
需要root許可權,。
su root
然後敲入密碼就行了。
Ⅲ linux 上重新編譯mysql源碼
吧硬碟掛到另外一台機器里,吧資料庫復制出來就可以了,\r\n好像Windows下有軟體可以識別Linux的分區的,不過我沒試過,可以去搜搜
Ⅳ windows怎麼查看mysql 編譯
准備工作:
安裝一個編譯器,推薦Microsoft visual studio 2008吧
另外需要裝:
開始編譯:
這里以mysql-5.1.38的源碼編譯為例:
mysql-5.1.38的代碼下載可以到mysql官方網站下載,具體怎麼下載不在說明。
打開一個cmd窗口:
輸入:
cscript //H:CScript
然後:
cd /path/mysql-5.1.38
win\configure WITH_INNOBASE_STORAGE_ENGINE __NT__
win\build-vs9.bat
到此我們將會創建一個mysql.sln的工程文件,如果對想學習代碼的朋友,到此即可以,然後可以用Microsoft visual studio 2008打開這個文件就可以查看相應的代碼了。
如果需要調試或單步執行調試:
這里以mysqld項目為例:
打開項目mysqld 的屬性點擊debugging
在mysqld的屬性頁設置命令參數(Command Arguments)為:–console。這樣就可以用debug方式調試代碼了。
同樣對於其它項目的調試,也是這樣處理,屬性,添加命令行參數:–console。
對於想跟蹤的項目可以執行build,然後可以在mysql-5.1.38/client/Debug下生成相應的執行文件。
Ⅳ 在linux安裝MySQL時採用源碼編譯安裝,但是如何讓MySQL的編譯時間縮短呢
可以試試在使用make && make install 時添加-j參數,不限制內核進行編譯安裝。或者-j 後加內核數 。例如 make -j 4 && make install -j 4
優點:速度快會相對提高很多
缺點:消耗大量CPU,內存資源。
我做過一個測試,如果不限定內核 (16核 80GB內存 )的伺服器編譯安裝mysql 5.0.7 安裝時長大致在10分鍾左右,但是測試時伺服器CPU跑滿100% ,內存消耗至少32GB。直接使用 make && make install 安裝耗時45分鍾,內存4GB ,CPU 10%左右。
Ⅵ 請問下mysql的源碼包分幾種linux下安裝完無法使用,是不是下載錯誤了
建議你用rpm包安裝,編譯源碼需要相關依賴庫,請查看您是否編譯通過
Ⅶ mysql 源碼編譯安裝,性能有多大提高
恐怕只有耐心等待更靠譜了。提升電腦配置不太現實。因為你很難確認你把哪一個部件替換更新掉,就能提高編譯安裝速度,還有具體的能提高多少?這些都難以具體量化。
Ⅷ 目前最新版的mysql在Linux下源碼編譯安裝的方法。具體參數的含義一並說明
解壓後進入目錄
./configure 就可以看到可以添加的所有編譯參數選項和意義了
Ⅸ mysql5.6.33源碼編譯
重點不是這里,重點是下面的錯誤:
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported table type: InnoDB
[ERROR] Aborting
把你的 datadir 數據目錄清空。重新運行mysql_install_db
Ⅹ 編譯環境cmake+gcc怎麼編譯mysql源碼
方法/步驟
1
在安裝mysql資料庫伺服器前,確保你的linux系統是可以連接網路的,下面我們將通過源碼方式來安裝mysql首先通過putty登入進你的Linux系統,確保系統中已經安裝的gcc c++ 等編譯環境,因為mysql從5.5版本開始是使用cmake編譯的,如果三個環境都沒安裝,可以使用下面的命令進行安裝:yum -y install make gcc-c++ cmake bison-devel ncurses-devel
2
查找系統里是否已經安裝了mysql資料庫的相關組件,使用命令:rpm -qa | grep mysql 進行查找,如果查找到,可以使用下面命令進行強制卸載:rpm -e --nodeps 包名
如果你當時在安裝Linux系統時,使用的默認的安裝選項,這一步可以跳過;