MySQL是一個(gè)眾所周知的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。它是開(kāi)源的,并且免費(fèi)提供。在MySQL中,root是最重要的賬戶之一。它有最高權(quán)限來(lái)執(zhí)行MySQL數(shù)據(jù)庫(kù)的所有操作。但是,root賬戶也可以在Linux/Unix系統(tǒng)上執(zhí)行系統(tǒng)命令行。
這里是如何在mysql root用戶下執(zhí)行系統(tǒng)命令的示例。為了執(zhí)行系統(tǒng)命令,我們需要使用MySQL的新特性 - 用戶自定義函數(shù)(UDF)。
讓我們創(chuàng)建一個(gè)簡(jiǎn)單的UDF,以便MySQL root用戶可以執(zhí)行系統(tǒng)命令。以下是關(guān)于如何實(shí)現(xiàn)此目標(biāo)的步驟:
CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';
這個(gè)函數(shù)將允許root用戶在MySQL中執(zhí)行系統(tǒng)命令。檢查您的系統(tǒng)中是否已安裝lib_mysqludf_sys.so文件。如果沒(méi)有,請(qǐng)先下載和編譯此庫(kù)。
一旦UDF創(chuàng)建完成,MySQL root用戶就可以開(kāi)始執(zhí)行系統(tǒng)命令了。以下是一個(gè)示例:
mysql>SELECT sys_exec('ls /etc/');
這將顯示系統(tǒng)命令“l(fā)s /etc/”執(zhí)行的結(jié)果。在此示例中,我們只是列出了Linux /etc/目錄下的所有內(nèi)容。您可以使用任何系統(tǒng)命令,以及MySQL root用戶的所有權(quán)限。