開啟/etc/my.cnf檔案,修改以下設定,如果沒有,可手動添加。
#取消檔案系統的外部鎖
skip-locking
#不進行網域名稱反解析,注意由此帶來的許可權/授權問題
skip-name-resolve
#禁止MySQL中用“LOAD DATA LOCAL INFILE”命令。這個命令會利用MySQL把本地檔案讀到資料庫中,然後使用者就可以非法擷取敏感資訊了。網路上流傳的一些攻擊方法中就有用它的,它也是很多新發現的SQL Injection攻擊利用的手段!
local-infile = 0
#關閉遠端連線,即3306連接埠。這是MySQL的預設監聽連接埠。由於此處MySQL只服務於本地指令碼,所 以不需要遠端連線。儘管MySQL內建的安全機制很嚴格,但監聽一個TCP連接埠仍然是危險的行為,因為如果MySQL程式本身有問題,那麼未授權的訪問完 全可以繞過MySQL的內建安全機制。(你必須確定,你是否真的不需要遠端連線mysql)
skip-networking
修改完my.cnf後,還需要對mysql的使用者名稱、帳號、及預設資料庫進行調整
首先先登入mysql,在終端視窗輸入 /home/mysql/bin/mysql -u root -p
然後會提示輸入密碼,輸入正確密碼後,會出現mysql>提示符。
輸入以下命令:
mysql>use mysql;
mysql>update user set user=”CentOS” where user=”root”; (將mysql的root使用者名稱修改成centos,防止root的密碼被暴力破解)
mysql>select Host,User,Password,Select_priv,Grant_priv from user;
mysql>delete from user where user=”; (刪除user使用者)
mysql>delete from user where password=”; (刪除user使用者)
mysql>delete from user where host=”; (刪除user使用者)
mysql>drop database test; (刪除預設的test資料庫)
mysql>flush privileges; (重新整理mysql的緩衝,讓以上設定立即生效)
mysql>quit;
為了使以上最佳化和安全設定生效,請重啟Mysql服務或Linux。