[英]Backup all privileges related to specific user of MySQL
我想从MySQL数据库备份与特定用户(例如u_1
)相关的所有特权,并将其还原到另一台服务器中。 如上所述这里 , The 'mysql' database contains users/privileges/passwords.
因此,我必须从mysql
数据库的所有表( mysql.user
, mysql.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.