MySQL 如何快速复制用户权限到其他环境



标题: MySQL 如何快速复制用户权限到其他环境

作者: lōττéry ©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]


脚本用途:
 1、mysql主从搭建,从库用户权限的复制(可直接在主库执行脚本,将输出结果在从库执行)
 2、实现 pt-show-grants【打印权限信息】(线上可选择不用安装pt软件..通过脚本实现pt-show-grants功能)
 3、用户权限统计

脚本:

hostname=192.168.1.12
username=lottery
password=lottery
touch CREATE_user.txt
for port in `ps -ef | grep mysql| grep socket| grep datadir| awk -F= '{print $NF}'`
  do
   sock=`ps -ef | grep mysql| grep socket| grep datadir|awk -F".pid" '{print $NF}'| grep $port`
   echo "-------"$port"-create_user.sql:-------" >>CREATE_user.txt
     echo "select concat('show grants for ''',user,'''@''',host, ''';') from mysql.user where user <>'root' and user <>'' " | \
     mysql --host=$hostname --user=$username --password=$password $sock -N | \
     mysql --host=$hostname --user=$username --password=$password $sock -N | \
     sed "s/$/;/"  >>CREATE_user.txt
done
cat CREATE_user.txt
rm -rf CREATE_user.txt



脚本打印信息如下:
-------3306-create_user.sql:-------
GRANT ALL PRIVILEGES ON *.* TO 'lottery'@'192.168.%' IDENTIFIED BY PASSWORD '*6E9EF176ABE11111146AF84111111171111111';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.1.%' IDENTIFIED BY PASSWORD '*AC111111FDDC8943AB31CBD111111E79F7953EA';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.2%' IDENTIFIED BY PASSWORD '*AC2111111FDDC8943A11111147D758E79F7953EA';
GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329101111118DDA7DC61111112AD9';
-------3308-create_user.sql:-------
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY PASSWORD '*AC241830FFDDC11111131CBD47D758E79111111A';
GRANT ALL PRIVILEGES ON *.* TO 'lottery'@'192.168.%' IDENTIFIED BY PASSWORD '*6E9EF111111590A33746AF84DB6348D171111111';
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'mycat'@'192.168.1.%' IDENTIFIED BY PASSWORD '*6EA111111950B4A6BFC111111925FD11111147A42';
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'mycat_user'@'192.168.1%' IDENTIFIED BY PASSWORD '*6EAF111111B4A6BFC92BA04111111086111111112';
GRANT SHUTDOWN ON *.* TO 'admin'@'localhost' IDENTIFIED BY PASSWORD '*4E74B1831111113952F4C163CB961DFBC5111111';
[root@MIU-MYSQL-002 ~]# 


pt-show-grants 打印权限介绍

l   功能介绍:
规范化和打印   mysql 权限,让你在复制、比较   mysql 权限以及进行版本控制的时候更有效率!
l   用法介绍:
pt-show-grants [OPTION...] [DSN]   选项自行用 help   查看, DSN   选项也请查看 help ,选项区分大小写。
l   使用示例:
查看指定 mysql 的所有用户权限:   pt-show-grants --host='localhost' --user='root' --password='zhang@123'  
查看执行数据库的权限:   pt-show-grants --host='localhost' --user='root' --password='zhang@123' --database='hostsops'  
查看每个用户权限生成   revoke 收回权限的语句:   pt-show-grants --host='localhost' --user='root' --password='zhang@123' --revoke

【源于本人笔记】 若有书写错误,表达错误,请指正... 


此条目发表在    SQL、SQL优化篇   分类目录。将 固定连接 加入收藏夹。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28602568/viewspace-1840941/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28602568/viewspace-1840941/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值