shell导出mysql所有用户权限

默认情况下,如果使用

select * from mysql.user;

导出的只是全局权限,要想查看每个用户的具体权限,要使用

show grants for "youruser"@'yourip';

如果要想导出所有的用户权限呢?应用场景--数据库迁移,使用下面的脚本(在国外网站看到)

#!/bin/bash
#
Function export user privileges

expgrants()
{
mysql
-B -u'root' -p'123456' -N $@ -e "SELECT CONCAT(
'SHOW GRANTS FOR ''', user, '''@''', host, ''';'
)
AS query FROM mysql.user" | \
mysql
-u'root' -p'123456' $@ | \
sed
's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/-- \1 /;/--/{x;p;x;}'
}
expgrants
> ./grants.sql

 

posted @ 2011-01-05 11:29  sunss  阅读(3035)  评论(0编辑  收藏  举报