繁体   English   中英

备份与MySQL特定用户相关的所有特权

[英]Backup all privileges related to specific user of MySQL

我想从MySQL数据库备份与特定用户(例如u_1 )相关的所有特权,并将其还原到另一台服务器中。 如上所述这里The 'mysql' database contains users/privileges/passwords. 因此,我必须从mysql数据库的所有表( mysql.usermysql.db ,...)备份所有相关数据。 我可以运行以下命令:

$ mysqldump -u root --flush-privileges -r mysql.sql -p mysql

但是当然mysql.sql包含所有用户和所有特权

我也尝试了以下命令:

$ mysqldump -u root -p --where="user.user='u_1'" mysql user> mysql.sql

但正如预期的那样,它仅包含一行mysql.user表。

有没有办法剥离除u_1之外的其他用户?

尝试以下选项(为了清楚起见,使用换行符):

$ mysqldump -u root -p 
  --where="user='u_1'"
  --complete-insert
  --extended-insert
  --no-create-info
  mysql 
  user db tables_priv columns_priv procs_priv proxies_priv 
  > mysql.sql

或者...让我们将上述解决方案称为“艰难的方式”。

这应该是简单的方法:

$ mysql -u root -p
  --skip-column-names
  -e "SHOW GRANTS FOR 'u_1';"
  > grants.sql

我会用:

pt-show-grants --only u_1

pt-show-grants是免费的Percona工具包中的工具。

参见https://www.percona.com/doc/percona-toolkit/LATEST/pt-show-grants.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM