2010年9月23日 星期四
[MySQL] 資料庫安全配置
來源: http://vfp.sunyear.com.tw/viewtopic.php?t=598 MySQL一些小竅門 1)如果不慎忘記了MySQL的root密碼,我們可以在啟動MySQL伺服器時加上參數--skip-grant-tables來跳過授權表的驗證 (./safe_mysqld --skip-grant-tables &),這樣我們就可以直接登陸MySQL伺服器,然後再修改root用戶的口令,重啟MySQL就可以用新口令登陸了。 2)啟動MySQL伺服器時加上--skip-show-database使一般資料庫用戶不能流覽其他資料庫。 3)啟動MySQL伺服器時加上--chroot=path參數,讓mysqld守護進程運行在chroot環境中。這樣SQL語句LOAD DATA INFILE和SELECT ... INTO OUTFILE就限定在chroot_path下讀寫文件了。這裡有一點要注意,MySQL啟動後會建立一個mysql. sock 檔,默認是在/tmp目錄下。使用了chroot後,MySQL會在chroot_path/tmp去建立mysql. sock 檔,如果沒有chroot_path/tmp目錄或啟動MySQL的用戶沒有這個目錄寫許可權就不能建立mysql. sock 檔,MySQL會啟動失敗。比如我們加了--chroot=/usr/local/mysql/啟動參數,那麼最好建立一個啟動MySQL的用戶能寫的 /usr/local/mysql/tmp目錄,當然我們也可以用--socket=path來指定mysql. sock 檔的路徑,但這個path一定要在chroot_path裡面。 4)啟動MySQL伺服器時加上--log-slow-queries 參數,這樣mysqld會把SQL命令執行時間超過 long_query_time的寫入file檔。如果沒有指定=file,mysqld默認會寫到資料目錄下的hostname-slow.log。如 果只指定了filename,沒有指定路徑,那麼mysqld也會把filename寫到資料目錄下。我們通過這個日誌檔可以找出執行時間超長的查詢語 句,然後儘可能的優化它減輕MySQL伺服器的負擔。 5)如果我們只需本機使用MySQL服務,那麼我們還可以加上--skip-networking啟動參數使MySQL不監聽任何TCP/IP連接,增加安全性。(非常推薦)
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言