我正在使用 MySQL 5.5 + Opensuse 12.3 。在遇到 mysqldump 问题(似乎是 OpenSuse Mysql 发行版的错误)后,我一直在寻找其他备份解决方案。
我从 percona 找到了 xtrabackup,这是非常好的解决方案。我测试它成功地备份和恢复。
但是,它似乎并不像我预期的那样完整,他们不备份用户/授权和配置文件(my.cnf)...
使用 mysqlpdump 我使用这个 shell 脚本:
mygrants()
{
mysql -B -N $@ -e "SELECT DISTINCT CONCAT(
'SHOW GRANTS FOR ''', user, '''@''', host, ''';'
) AS query FROM mysql.user" | \
mysql $@ | \
sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/## \1 ##/;/##/{x;p;x;}'
}
对于 xtrabackup,我相信我会继续使用这个“补充”。
查看 xtrabackup 文档,我对这个主题一无所知。
我需要知道的:
- 有什么方法可以自动将这个(grant 和 my.cnf)包含到 xtrabackup 中?
- 如果没有,运行我的脚本来获取授权和 my.cnf 的副本是否足以作为我数据库的备份?或者我在这里遗漏了什么?
您的 MySQL User Grants 备份解决方案很好。
多年来我一直提倡这样做:
Mar 24, 2013
: MySQL 导出用户带分号“;” 最后Dec 24, 2012
:备份和恢复“mysql”数据库Jun 13, 2012
:将数据库从一台服务器移动到另一台服务器的最快方法Apr 12, 2012
:无法以 root 身份授予特权Apr 09, 2012
:删除mysql用户Jun 26, 2011
:将旧备份恢复到最新的 MySQL 版本另外,请注意 Percona 创建了pt-show-grants和xtrabackup。奇怪的是有趣的是
pt-show-grants
还没有被集成xtrabackup
(嘿,我可能是错的。毕竟,mysql 模式的物理备份应该非常适合 Grants 的备份)。也许,以下原因之一是:回到您最初的问题,SQL 中的用户授权的副本
my.cnf
就足够了。