mysql 备份的权限_Mysql 数据库备份权限
mysqldump命令没有备份权限的功能,作为一个数据库完整的备份,还需要备份权限,备份脚本如下:#!/bin/bashMysqlUser=xxxMysqlPass=xxxMysqlCharset=utf8MysqlBinPath=/usr/local/mysql/binMYSQL_BIN=$MysqlBinPath/mysqlMYSQL_USER_PASS="-u$MysqlUser-p$M..
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
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)