Mysql 如何导出MariaDB的所有数据库、用户和权限

Mysql 如何导出MariaDB的所有数据库、用户和权限,mysql,mariadb,Mysql,Mariadb,我有一个服务器,有800个数据库,600多个用户,拥有许多不同的权限。我知道我可以使用mysqldump导出所有数据库,但我仍然没有找到一种安全/简单的方法来导出所有用户及其权限 通过谷歌搜索,我发现了许多不同的命令,可以列出所有用户,查询每个用户的权限,将其附加到一个文件中,并一直运行到最后一个用户。这真的是导出如此重要信息的最安全的方法吗?我确实需要确保导出的用户/权限与服务器中的用户/权限完全相同,我无法承受在导出某些用户或某些用户权限时可能失败的shell命令(循环) 还有最后一个问题:

我有一个服务器,有800个数据库,600多个用户,拥有许多不同的权限。我知道我可以使用
mysqldump
导出所有数据库,但我仍然没有找到一种安全/简单的方法来导出所有用户及其权限

通过谷歌搜索,我发现了许多不同的命令,可以列出所有用户,查询每个用户的权限,将其附加到一个文件中,并一直运行到最后一个用户。这真的是导出如此重要信息的最安全的方法吗?我确实需要确保导出的用户/权限与服务器中的用户/权限完全相同,我无法承受在导出某些用户或某些用户权限时可能失败的shell命令(循环)

还有最后一个问题:我知道
mysqldump——所有数据库都不会导出
information\u schema
performance\u schema
(这很好),但它仍然会导出
mysql
数据库!为什么?我认为导出这个
mysql
数据库是不安全的,因为我以后可能会在更新版本的MariaDB上导入它!对吗?

我会用它来导出用户和权限。阅读该工具的文档,了解其用法和优点

另一个转储所有模式(除了
mysql
schema)的解决方案是:查看mysqlpump,它是mysqldump的继承者。它有一个选项用于
--排除数据库
。还有一个
--user
选项,它像pt show grants一样转储用户和权限

请阅读:


MariaDB版本10.2.37、MariaDB版本10.3.28、MariaDB版本10.4.18和MariaDB版本10.5.9及更高版本将转储服务器上用户的所有创建用户、角色和授权语句。

可能只需备份所有数据库文件并将其复制到目标系统。“但它仍然导出mysql数据库!”,我知道这是我修复它的原因()的感觉,我甚至在最近的一次会议上谈到了这一点,希望视频在几周后会出现。很乐意接受bug报告。很高兴使用“mysqldump--system=all”。这是个好消息!阅读您提供的链接,我想知道:如果我从我的服务器备份数据库
mysql
,以后使用它进行恢复,可能会更容易些?因为它看起来像是在保存用户、权限。。。对吗?您提到过从旧版本的mariadb升级到新版本,使用
mysql
数据库的备份/恢复会有问题,因为mariadb-10.4将
mysql.user
更改为视图。这是该功能的部分动机
--system=all
会备份
mysql
数据库的所有相关位,尤其是用户和隐私。