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