方法/步驟
創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元雜多做網(wǎng)站,已為上家服務(wù),為雜多各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
通過rpm查看
查看軟件是否安裝
首先我們需要查看軟件是否已經(jīng)安裝,或者說查看安裝的軟件包名稱。如查找是否安裝mysql
接著根據(jù) rpm -ql 列出軟件包安裝的文件
綜合上述以上的問題,可以直接使用 rpm -qal |grep mysql 查看mysql所有安裝包的文件存儲位置
Yum查找
除了rpm 查詢還可以通過yum search 查找對應(yīng)可以安裝的軟件包
其他查找方法
除了根據(jù)軟件包來找文件位置之外,最常用的就是通過find查找某個關(guān)鍵字比如mysql所有包含mysql服務(wù)的文件路徑
Which查找命令
Which命令是通過 PATH環(huán)境變量查找可執(zhí)行文件路徑,用于查找指向這個命令所在的文件夾
Whereis命令和find類似,不過不同的是whereis是通過本地架構(gòu)好的數(shù)據(jù)庫索引查找會比較快。如果沒有更新到數(shù)據(jù)庫里面的文件或命令則無法查找到信息
方法有幾種,
1、查詢所有文件
這種方法最暴力,就是從根目錄下面搜索mysql,這種方法可能時間較長,不過一般幾十秒就能搜到了。具體方法如下:
$cd /
$find -name mysql
2、通過locate搜索
這種方法比上面一種快很多,因為它查的是索引。不過要看你有沒有啟用locate
$cd /
$locate mysql
3、通過rpm找包,再查找包的位置,不過這種方法只適合rpm安裝的
$rpm -qa|grep mysql
php-mysql-5.4.16-36.3.el7_2.x86_64
$rpm -ql php-mysql-5.4.16-36.3.el7_2.x86_64
4、若程序已經(jīng)啟動了,可以直接找到
$ps -ef|grep mysql
看你是用什么按裝了,以centos為例,用rpm或yum安裝的話可以用命令:
rpm -qal|grep mysql
這個命令會列舉出rpm安裝包安裝了那些東西在那些路徑下
如果是手動編譯安裝的話,那會比較麻煩點,默認的話是在/usr/local下面,但如果自己指定了位置的話,那么就用find命令查找吧:
find / -name "*mysql*"
執(zhí)行后會列出系統(tǒng)上所有帶有mysql字樣的文件或文件夾及其路徑!
有用的話記得采納哦
可以直接使用
rpm?-qal?|grep?mysql
查看mysql所有安裝包的文件存儲位置
用vs code 就可以了。
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