SHOW DATABASE基本上不做什么,只是列出位于數(shù)據(jù)目錄中的目錄名。有些數(shù)據(jù)庫系統(tǒng)保持一個(gè)主表,用于維護(hù)所有數(shù)據(jù)庫,但在MySQL無此構(gòu)件。由于賦予數(shù)據(jù)目錄結(jié)構(gòu)的簡潔性,數(shù)據(jù)庫列表隱含在數(shù)據(jù)目錄的內(nèi)容中,而且這樣的表不必有額外的開銷。
SHOW TABLE my_db的輸出只是列出my_db數(shù)據(jù)庫目錄中的.frm文件的基文件名。有些數(shù)據(jù)庫系統(tǒng)一個(gè)注冊表,列舉所有包含在一個(gè)數(shù)據(jù)庫中的表,MySQL不是,因?yàn)椴槐匾?ldquo;注冊表”隱含在數(shù)據(jù)目錄的結(jié)構(gòu)中。
990509 7:37:09 492 Connect Paul@localhost on test 492 Query show databases 492 Query show tables 492 Field List tbl_1 492 Field List tbl_2 ... 990509 7:34:22 492 Query CREATE TABLE my_tbl (val INT) 990509 7:34:34 492 Query INSERT INTO my_tbl values (1) 990509 7:34:38 492 Query DROP TABLE my_tbl 990509 7:34:40 492 Quit 一般日志包含日期和時(shí)間、服務(wù)器進(jìn)程ID、事件類型和事件信息欄目。
同一個(gè)會(huì)話出現(xiàn)在更新日志中看上去像這樣:
use test; CREATE TABLE my_tbl (val int); INSERT INTO my_tbl VALUES(1); DROP TABLE my_tbl; 對更新日志,用--log-long-format選項(xiàng)獲得一個(gè)擴(kuò)展形式的日志,擴(kuò)展日志提供有關(guān)誰何時(shí)發(fā)出每一條查詢,這使用更多的磁盤空間,但如果你想知道誰在做什么,而不用將更新日志對照一般日志的內(nèi)容找到連接事件。
對上面的會(huì)話,擴(kuò)展更新日志產(chǎn)生這樣的信息:
# Time: 990507 7:32:42 # User@Host: paul [paul] @ localhost [] use test; CREATE TABLE my_tbl (val int); # User@Host: paul [paul] @ localhost [] INSERT INTO my_tbl VALUES(1); # Time: 990507 7:32:43 # User@Host: paul [paul] @ localhost [] DROP TABLE my_tbl; 保證你的日志文件安全并且不讓任意用戶讀取是個(gè)好主意。一般日志和更新日志都能包含諸如口令等的敏感信息,因?yàn)樗鼈儼樵兾谋尽H纾?br /> 990509 7:23:31 4 Query UPDATE user SET Password=PASSWORD("secret") WHERE user="root" 對于檢查和設(shè)置數(shù)據(jù)目錄的權(quán)限,請見《MySQL安全性指南》。使數(shù)據(jù)目錄安性的指令包含下列命令: