一 mysql5.7以下版本
--创建脚本 # vi getgrants.sh #!/bin/bash hostname=$1 username='root' password='admin' port=3306 echo "select concat('show grants for ''',user,'''@''',host, ''';') from mysql.user where user <> '' and password <> ''" | \ mysql --host=$hostname --user=$username --password=$password --port=$port -N | \ mysql --host=$hostname --user=$username --password=$password --port=$port -N | \ sed "s/$/;/" > /tmp/create-users_$hostname.sql --调用方法 # sh getgrants.sh '192.168.11.142'
本地获取方式
# cat getgrants.sh #!/bin/bash username='root' password='***' port=3306 echo "select concat('show grants for ''',user,'''@''',host, ''';') from mysql.user where user <> '' and password <> ''" | \ mysql --user=$username --password=$password --port=$port -S /tmp/mysql3306.sock -N | \ mysql --user=$username --password=$password --port=$port -S /tmp/mysql3306.sock -N | \ sed "s/$/;/" > /apps/dbchange/20190506/create-users.sql
二 5.7 以后就不能直接获取密码,需要重新写脚本(待完成)
