mysqldump命令没有备份权限的功能,作为一个数据库完整的备份,还需要备份权限,备份脚本如下:

#!/bin/bash

MysqlUser=xxx

MysqlPass=xxx

MysqlCharset=utf8

MysqlBinPath=/usr/local/mysql/bin

MYSQL_BIN=$MysqlBinPath/mysql

MYSQL_USER_PASS=" -u$MysqlUser -p$MysqlPass"

MysqlBackupDir=/home/mysql

do_backup_grant_priv()

{

split=\`

special=`$MYSQL_BIN $MYSQL_USER_PASS --default-character-set=$MysqlCharset -Bse "select user, host from mysql.user;" | grep "$split" |wc -l `

if [ $special -eq 0 ];then

split=\`

else

special=`$MYSQL_BIN $MYSQL_USER_PASS --default-character-set=$MysqlCharset -Bse "select user, host from mysql.user;" | grep -E "'" |wc -l `

if [ $special -eq 0 ];then

split=\'\'

else

echo "Error:the username have special char"

exit

fi

fi

for SQLUSER in `$MYSQL_BIN $MYSQL_USER_PASS --default-character-set=$MysqlCharset -Bse "select concat('$split', user, '$split', '@', '''', host, '''') from mysql.user;"`

do

$MYSQL_BIN $MYSQL_USER_PASS --default-character-set=$MysqlCharset -Bse "show grants for $SQLUSER;" | sed 's/$/;/g' >> $MysqlBackupDir/privileges_backup_`date +%Y%m%d%H`.sql

done

}

do_backup_grant_priv

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐