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

时间:2017-09-24 05:10:13

标签: mysql database

我想从MySQL数据库备份与特定用户相关的所有权限(例如u_1),并在另一台服务器中恢复该权限。如上所述hereThe '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以外,有没有办法去除其他用户?

2 个答案:

答案 0 :(得分:3)

尝试这些选项(为了清晰起见,换行符):

$ 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

答案 1 :(得分:0)

我会用:

pt-show-grants --only u_1

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

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