原Linux下MySQL命令查找不到
會(huì)寫代碼的飯桶閱讀數(shù):10322017-12-04
root@DB-02 ~]# mysql -u root
-bash: mysql: command not found
原因:這是由于系統(tǒng)默認(rèn)會(huì)查找/usr/bin下的命令,如果這個(gè)命令不在這個(gè)目錄下,當(dāng)然會(huì)找不到命令,我們需要做的就是映射一個(gè)鏈接到/usr/bin目錄下,相當(dāng)于建立一個(gè)鏈接文件。
在mysql安裝目錄的\bin\路徑下,執(zhí)行mysqld命令,初始化mysql自身的數(shù)據(jù)庫。用戶可以輸入所要執(zhí)行的命令,比如,cd、dir、type等linux命令,這些命令由command執(zhí)行,command執(zhí)行完這些命令后,再次顯示由當(dāng)前盤符和當(dāng)前路徑組成的提示符,等待用戶的輸入。這個(gè)腳本在命令行執(zhí)行是ok的,但剛在crontab中發(fā)現(xiàn)是執(zhí)行不成功的,后來通過一系列驗(yàn)證,發(fā)現(xiàn)原來是路徑的問題,crontab中當(dāng)然是要用絕對(duì)路徑的,所以,crontab中要執(zhí)行的腳本也必然要使用絕對(duì)路徑linux命令,原來我們的運(yùn)行腳本中有一個(gè)java類使用的是相對(duì)路徑,所以導(dǎo)致腳本沒有執(zhí)行,但日志文件卻創(chuàng)建了,所以很快可以定位是腳本執(zhí)行沒有成功,把路徑修改成絕對(duì)路徑,發(fā)現(xiàn)執(zhí)行后,java類把路徑當(dāng)作包名來識(shí)別,所以最后就只能在shell腳本前面加上目錄切換命令,如cd /root/...的,這樣腳本執(zhí)行就都可以識(shí)別到目錄了,而且不管在哪兒執(zhí)行,它都是絕對(duì)的路徑,可以找到并運(yùn)行成功。
# ln -s /usr/local/mysql/bin/mysql /usr/bin