用vs code 就可以了。
創(chuàng)新互聯(lián)公司客戶idc服務(wù)中心,提供成都棕樹機房、成都服務(wù)器、成都主機托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過各地的服務(wù)中心,我們向成都用戶提供優(yōu)質(zhì)廉價的產(chǎn)品以及開放、透明、穩(wěn)定、高性價比的服務(wù),資深網(wǎng)絡(luò)工程師在機房提供7*24小時標準級技術(shù)保障。
Visual Studio Code
Visual Studio Code(簡稱VS Code)是由微軟開發(fā)的,同時支持Windows、Linux和macOS操作系統(tǒng)的開源文本編輯器。它支持調(diào)試,內(nèi)置了Git 版本控制功能,同時也具有開發(fā)環(huán)境功能,例如代碼補全(類似于IntelliSense)、代碼片段、代碼重構(gòu)等。該編輯器支持用戶自定義配置,例如改變主題顏色、鍵盤快捷方式、編輯器屬性和其他參數(shù),還支持擴展程序并在編輯器中內(nèi)置了擴展程序管理的功能。
安裝LLDB
LLDB是LLVM編譯器的一部分,推薦使用Homebrew安裝LLVM工具集,不建議使用系統(tǒng)自帶的LLDB,安裝前必須先創(chuàng)建證書否則無法安裝,步驟如下:
創(chuàng)建完成后,開始安裝LLVM
brew install llvm --with-python@2?--with-lldb
安裝插件
VS Code自帶有debug功能,這里我推薦使用LLDB Debugger插件。
?接下來,為項目配置調(diào)試參數(shù)。
配置調(diào)試參數(shù)
使用VS Code打開MySQL源碼目錄,在側(cè)邊欄選擇debug欄目,添加配置,program輸入需要調(diào)試的程序路徑,這里選擇你編譯好的mysqld路徑,args輸入程序啟動所需的參數(shù),通常會指定mysqld的配置文件。這樣就配置好了,是不是很簡單。
啟動調(diào)試
點擊啟動按鈕,啟動后如果沒有設(shè)置斷點會mysqld會正常啟動,如果觸發(fā)了斷點會如下圖顯示。
整個調(diào)試窗口基本分為六部分,所有的調(diào)試操作都在這里完成:
1:?顯示變量信息
2:?設(shè)置重點關(guān)注的變量
3:?顯示調(diào)用棧信息
4:?設(shè)置斷點信息,在代碼行號前也可以設(shè)置斷點
5:?代碼顯示區(qū)域,上方是調(diào)試按鈕,包括 continue/stepover/step in/step out/restart/stop
6:?調(diào)試終端輸入輸出區(qū)
斷點設(shè)置
在代碼行號前點擊即可在該行為設(shè)置斷點,也可以根據(jù)條件設(shè)置斷點。以設(shè)置ConditionalBreakpoint為例,當程序啟動后會按照你設(shè)置的條件表達式判斷是否觸發(fā)斷點。
Conditional Breakpoint這種方式用在目標變量達到某條件時觸發(fā)斷點,其余則跳過繼續(xù)執(zhí)行。比如:設(shè)置變量等于目標表名時觸發(fā)斷點,其余表則跳過,相對函數(shù)名斷點省去很多手工跳過操作。
遠程調(diào)試
假如你想調(diào)試遠程Linux服務(wù)器上的MySQL上面的方法就不合適了,這時需要遠程調(diào)試。lldb和gdb都支持遠程調(diào)試,這里以lldb為例。
需要先在遠程主機上安裝lldb,使用yum安裝,源地址在這里
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調(diào)試界面中新增配置項。
{
"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編譯的代碼路徑與本機代碼庫路徑的映射,這樣調(diào)試時代碼才可以和程序關(guān)聯(lián)在一起看
注意:記得調(diào)試前將代碼切換到與目標程序版本一致的branch
一、編譯安裝MySQL前的準備工作
安裝編譯源碼所需的工具和庫
[sql] view plaincopy
yum install gcc gcc-c++ ncurses-devel perl
安裝cmake,從http //www cmake org下載源碼并編譯安裝
[sql] view plaincopy
wget http //www cmake org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -xzvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap ; make ; make install
cd ~
二、設(shè)置MySQL用戶和組
新增mysql用戶組
[sql] view plaincopy
groupadd mysql
新增mysql用戶
[sql] view plaincopy
useradd -r -g mysql mysql
三、新建MySQL所需要的目錄
新建mysql安裝目錄
[sql] view plaincopy
mkdir -p /usr/local/mysql
新建mysql數(shù)據(jù)庫數(shù)據(jù)文件目錄
[sql] view plaincopy
mkdir -p /data/mysqldb
四、下載MySQL源碼包并解壓
從http //dev mysql com/downloads/mysql/直接下載源碼,解壓mysql-5.6.16.tar.gz(http //www quseqi com/這個網(wǎng)站就是用的5.6.16版本)
[sql] view plaincopy
wget http //www kakapart com/files/mysql-5.6.16.tar.gz
tar -zxv -f mysql-5.6.16.tar.gz
cd mysql-5.6.16
五、編譯安裝MySQL
從mysql5.5起,mysql源碼安裝開始使用cmake了,設(shè)置源碼編譯配置腳本。
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysqldb \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1
為了避免端口沖突、程序沖突等現(xiàn)象,建議先將使用rpm方式安裝的mysql、mysql-server軟件包卸載
2
MySQL5.5版本以后需要使用cmake工具編譯安裝,所以在安裝MySQL之前要先安裝cmake工具(安裝方法如下)
3
掛載軟件光盤(掛載前先查詢下是否已經(jīng)有其他光盤掛載了,如果有就用umount命令卸載后重新掛載帶有MySQL軟件包的光盤)
END
編譯安裝:解包、配置、編譯和安裝
解包(解包就是將光盤里面的安裝包解壓到本地,一般解壓到/usr/src目錄下)
配置(配置是根據(jù)服務(wù)器的實際應(yīng)用需要來制定不同的選項,如指定安裝路徑、啟用字符集等等,類似于windows軟件的自定義安裝,只不過linux中更加靈活)
編譯(編譯就是完成配置后使用"make"命令將源代碼文件進行編譯而生成二進制的程序模塊、動態(tài)鏈接庫、可執(zhí)行文件等,輸入make回車即可)
安裝(編譯完成后,執(zhí)行"make install"安裝命令,將軟件的執(zhí)行程序、配置文件、幫助文檔等相關(guān)文件復(fù)制到linux系統(tǒng)中,進行安裝,輸入make install回車即可)
使用binary進行安裝,文件名mysql-standard-5.0.18-linux-i686-glibc23.tar.gz
[1]將上述文件解壓到某處,并將MySQL所以目錄名改為mysql,結(jié)果應(yīng)如/home/xxx/mysql
[2]根據(jù)mysql目錄下的INSTALL-BINARY文件來進行安裝
// 加用戶組mysql,以及用戶mysql;該命令無需修改
shell groupadd mysql
shell useradd -g mysql mysql
// 以下三步的主要目的是為MySQL解壓目錄做一個鏈接,放到usr/local目錄中
// 首先是進入/usr/local目錄;該命令無需修改
shell cd /usr/local
// 這一步可以不需要,因為已經(jīng)解壓了
shell gunzip /PATH/TO/MYSQL-VERSION-OS.tar.gz | tar xvf -
// 做一個到/home/xxx/mysql的鏈接,放在/usr/local中,該鏈接的名字是mysql。
// 該命令修改為ln -s /home/xxx/mysql mysql
shell
ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
// 進入/home/xxx/mysql目錄,/usr/local/mysql是到/home/xxx/mysql的鏈接
shell
cd mysql
// 對MySQL進行初始化(如果以前已經(jīng)安裝過MySQL,這一步可以簡略);該命令無需修改
shell scripts/mysql_install_db --user=mysql
// 變更所有權(quán);該命令無需修改
shell chown -R root .
shell chown -R mysql data
shell chgrp -R mysql .
// 啟動MySQL服務(wù)器;該命令無需要修改
shell bin/mysqld_safe --user=mysql
[3]進入MySQL應(yīng)用環(huán)境
進入mysql目錄下的bin目錄,運行命令./mysql -u root
-p,此時將出現(xiàn)password:(要求輸入密碼),但默認情況下root用戶沒有密碼,所以回車即可。此時將進入MySQL界面,當然仍然只是個命令行窗口而以。
[4]簡單使用MySQL
在MySQL環(huán)境中運行命令show databases;,將會顯示已經(jīng)有的數(shù)據(jù)庫(如test);運行命令use test,將進入test數(shù)據(jù)庫...
注意:如果在運行./mysql -u root -p之后,報
Can't connect to local MySQL server through socket '/tem/mysql.sock'
的錯誤,那么可能有以下幾種情況:
[1]mysql.sock并不在/tmp目錄下,而是在其它某個目錄下(如,/var/lib/mysql目錄)。這時只需要將這個mysql.sock做鏈接到/tmp目錄下,運行命令:
ln -s MYSQL.SOCK_PATH /tmp/mysql.sock
[2]在同學(xué)的筆記本的Linux中,會在/tmp下生成mysql.sock,但重新啟動Linux后,該文件被刪除。這時也可以用情況2中的解決方法,或者每次都運行命令:./mysqld_safe --user=mysql