1)、刪除 除 root@localhost 及 root@$hostname 外的其餘帳戶:
mysql> drop user ''@'localhost';
mysql> drop user ''@'apptest';
mysql> drop user 'root'@'::1'; # IPV6
mysql> drop user 'root'@'apptest';
mysql> select user, host from mysql.user; # 驗證是否刪除成功
2)、刪除test數據庫:
mysql> drop database test;
mysql> show databases; # 驗證是否刪除成功
3)、修改默認的root密碼:
mysql> set password for 'root'@'localhost' = password("chiscdc");
# 最好是經過下面的mysqladmin交互命令進行從新設置root密碼。
shell> mysqladmin -uroot -hlocalhost -p -S /application/mysql/3306/mysql.sock password
shell> mysqladmin -uroot -h<hostname> -p -S /application/mysql/3306/mysql.sock password
堅持最小化權限的原則,對一個庫有隻有一個專門的用戶有操做權限;即在受權時,須要指定數據庫名、主機名,且主機名中不要包含任何通配符「%」。
mysql> grant all privileges on jhmyTest.* to 'test'@'192.168.231.9/255.255.255.0' identified by "chiscdc";
mysql> flush privileges;
mysql> show grants for 'test'@'192.168.231.9/255.255.255.0'; # 查看用戶權限
四、其餘安全注意事項,防止MySQL數據庫密碼的泄漏:mysql
禁止在shell命令行中輸入數據庫密碼:當在shell命令行中輸入明文密碼時,會被Linux記錄到操做歷史記錄文件中(能夠經過 history命令查看),從而致使密碼泄漏。
1)、經過mysqladmin命令修改mysql用戶密碼:
錯誤作法,在pasword後直接跟密碼字符串: shell> mysqladmin -uroot -p -S /application/mysql/3306/mysql.sock password "chiscdc"
正確作法:不在password關鍵字後寫任何字串,經過交互方式輸入新的密碼: shell> mysqladmin -uroot -p -S /application/mysql/3306/mysql.sock password
2)、經過mysql命令登陸mysql:sql
錯誤作法,在-p後直接跟密碼字符串: shell> mysql -uroot -pchiscdc -S /application/mysql/3306/mysql.sock
正確作法:不在-p後寫任何字串,經過交互方式輸入新的密碼: shell> mysql -uroot -p -S /application/mysql/3306/mysql.sockshell
3)、經過mysqldump命令進行定時備份數據庫:
錯誤作法,在備份腳本中寫明數據庫密碼,在-p後直接跟密碼字符串:
#!/bin/bash
# Backup the MySQL Database Scripts
user="root"
passwd="chiscdc"
mysqldump -u${user} -p${passwd} DBname > Dbname.sql
正確作法【官方文檔說是最安全的作法,
點此查看官方文檔說明】:經過mysql_config_editor命令行工具將MySQL用戶名、密碼、socket等寫入單獨的文件中(自動加密了),而且文件賦予只有該文件所屬用戶只讀權限(400),而後在腳本mysqldump命令中經過--defults-file參數讀取用戶名密碼:
shell> mysql_config_editor set --login-path=client --user=root --host=localhost --socket=/application/mysql/3306/mysql.sock --password
shell> mysql_config_editor print --all
設置後,在上面指定的host服務器上登陸mysql數據庫,也不須要輸入用戶名、密碼等。
新的備份腳本,也不須要指定主機名、用戶名、密碼等:
#!/bin/bash
# Backup the MySQL Database Scripts
mysqldump --all-databases > backup1.sql
# End Of File