2017-09-24 101 views
0

我想从MySQL数据库备份与特定用户相关的所有权限(例如u_1),并在另一台服务器上恢复该权限。如here,The 'mysql' database contains users/privileges/passwords.所述,所以我必须备份来自mysql数据库(mysql.usermysql.db,...)的所有表的所有相关数据。我可以运行此命令:备份与MySQL特定用户相关的所有权限

$ 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以外的其他用户?

+1

你不喜欢'grep'? –

+0

@JH这是关于“搜索”。 – hasanghaforian

+0

我认为这个问题可能更适合dba论坛 – Strawberry

回答

3

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

​​

或者......让我们把上面的解决方案“的艰辛的道路。”

这应该是最简单的方法:

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

第一种方法的结果是:'不能执行'SELECT/*!40001 SQL_NO_CACHE */* FROM'db' WHERE user.user ='u_1'': 'where子句'中的未知列'user.user'(1054) ' – hasanghaforian

+0

对不起,应该说'--where =“user ='u_1'”'。 –