MySQL导出权限并生成SQL文件

来源:互联网 发布:激光割算法公式 编辑:程序博客网 时间:2024/05/21 00:50

1、首先我们需要创建一个bash脚本,取名mysql_exp_grants.sh,默认最好用root权限去操作,脚本内容如下:

#!/bin/bash#传入mysql用户名,最好是用root,否者可能没有权限操作MYSQL_USER=$1#传入mysql密码MYSQL_PWD=$2#传入mysql的ip地址MYSQL_IP=$3#传入mysql端口MYSQL_PORT=$4mysql_exp_grants(){  mysql -B -u${MYSQL_USER} -p${MYSQL_PWD} -h ${MYSQL_IP} -P${MYSQL_PORT} -N $@ -e "SELECT CONCAT(    'SHOW GRANTS FOR ''', user, '''@''', host, ''';'    ) AS query FROM mysql.user" | \  mysql -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_IP} -P${MYSQL_PORT} $@ | \  sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/-- \1 /;/--/{x;p;x;}'}mysql_exp_grants > ./mysql_exp_grants-$3.sql

2、保存脚本后执行命令:
[root@mysql ~]#sh mysql_exp_grants.sh root root123 192.168.1.20 3306
会在当前目录下生成:mysql_exp_grants-192.168.1.20.sql ,这样的文件,里面就是我们需要的整库用户权限。
3、由于我们导出的是所有用户权限,生成的SQL里面也包含root权限等脏数据,建议审核一下再去新库执行,如迁往RDS等云库的时候。

原创粉丝点击