set root password? [y/n] y 設定密碼
new password:
re-enter new password:
password updated successfully!
reloading privilege tables...
.. success!
remove anonymous users? [y/n] y 去掉匿名使用者登陸資料庫的權力
disallow root login remotely? [y/n] 去掉超級使用者遠端登陸的權力
remove test database and access to it? [y/n] y 刪除測試庫
reload privilege tables now? [y/n] y 重新整理資料庫
此時mysql不能直接登入,安全性提高了
一般不備份information_schema和performance_schema,schema$
表示以schema結束-v表示取反,說明不要以它結尾的
#!/bin/bash
password=$1
dump_dir=/mnt/mysqldump
# 3.備份已經存在,使使用者進行選擇(編寫函式)
db_choice(
)#1.判斷/mnt/mysqldump目錄是否存在並且是否為目錄
echo
"---------------1.檢測備份目錄-------------------"if[
-e $dump_dir
];then
if[!
-d $dump_dir
];then
rm-fr $dump_dir
mkdir $dump_dir
fielse
echo
"目錄不存在,正在建立中.........."
mkdir $dump_dir
echo
"目錄$dump_dir建立成功"
fi#2.獲取資料中所有的資料庫名稱並通過for迴圈進行批量備份
# mysql westos
echo
"---------------2.載入資料庫並備份-------------------"
dbs=`mysql -uroot -p$password
-e "show databases;"
| grep -v -e "database|schema$"`
for db in $dbs
do#檢測備份檔案是否存在,如果存在,詢問使用者的需求,此處使用函式的呼叫if[
-e $dump_dir
/$db
.sql ]
;then
db_choice $db
$password
else
echo
"檔案$dump_dir/$db.sql備份成功"
mysqldump -uroot -p$password
$db > $dump_dir
/$db
.sql
fidone
注意:要將所需呼叫的函式放在最前面,以本次指令碼為例,如果3.函式部分在2.載入資料庫並備份這一部分的後面,就會出現下列所示錯誤
此處很簡單,只需呼叫函式:在原先為echo處改變成print_color_string ' color' ' string'
即可
red="\033[31m"
green="\033[32m"
yellow="\033[33m"
end="\033[0m"
print_color_string(
)# 3.備份已經存在,使使用者進行選擇
mysql資料庫備份shell指令碼
bin bash author george zheng 2012 03 12 version 1.2 myuser root mypass k943587 djj as host localhost date date i name date y m d h m s backupdir home ...
shell指令碼備份mysql資料庫
獲取mysql伺服器所有資料庫名稱,過濾掉不需要備份的資料庫 通過mysqldump來for迴圈匯出所有的資料庫的sql檔案 用zip加密壓縮所有的sql檔案 定期進行資料清理工作 bin bash 02.03.1.資料庫資訊定義 04.mysql host 192.168.1.1 05.mysql...
shell指令碼備份資料庫
自學使用shell指令碼備份資料庫,記錄一下 bin bash 定義變數 backdir mysql back date y m d t mysqldb 要備份的資料庫 mysqldb mysql mysqlusr root 手動輸入資料庫密碼 read p enter your password ...