当我尝试恢复mysqldump时,一些例程的用户特权就丢失了。据我所知,在mysql模式之后加载的模式中的例程没有用户权限。(例如,模式"abc“对例程具有正确的用户权限,但在模式"qrs”中,它们丢失了。)
我正在使用的转储是由以下人员创建的:
mysqldump --allow-keywords --all-databases --single-transaction --events --routines --flush-logs --flush-privileges --hex-blob当我在过去遇到这个问题时,我会加载转储,然后只重新加载mysql模式,这会给缺少的用户在例程上的特权。
然而,最近我已经开始使用GTID,因此,由于GTID重叠,我无法从转储中重新加载mysql模式,就像我尝试这样做时得到了以下错误一样:
@@GLOBAL.GTID_PURGED cannot be changed: the added gtid set must not overlap with @@GLOBAL.GTID_EXECUTED是否有一种方法可以这样重新加载转储,并且在另一台服务器上重新加载转储后,所有的用户权限都是完全相同的?
发布于 2019-12-19 18:40:40
需要将--set-gtid-purged=OFF标志添加到mysqldump语句中。这将阻止它在转储文件中写入set-gtid清除行。
https://dba.stackexchange.com/questions/244047
复制相似问题