mysql - innobackupex 恢复更改 root 和 debian-sys-maint 密码。 mysql重启失败

标签 mysql database-backups percona

我必须设置备份策略。 我选择 innobackupex 在 Debian 6 Squeeze 上运行。有两台服务器,生产服务器和备份服务器(如果生产服务器崩溃,它应该可以工作)。没有复制,我使用 rsync 来传输备份。 我有一个 php 脚本,它查看 conf 文件以了解何时必须进行备份。

我的问题是:如何使用 innobackupex 跳过 mysql 数据库或用户表?

关于主人:我执行以下命令:

innobackupex --user=root --password=xxx --no-timestamp /opt/backups/full/

rsync -avz --progress -e 'ssh -i -p 1000 '  /opt/backups/full/ user@xxx:/home/backups/full/

这很好用

在备份服务器上,我只需要准备和恢复文件:

innobackupex --apply-log --redo-only --user=xxx --password=xxx /home/backups/full/

innobackupex --copy-back /home/backups/full --user=root --password=xxx

一切正常,但在备份服务器上,root 用户的密码已更改,甚至 debian-sys-maint 密码也已更改。

root 用户的密码变成了 master 的密码。

我做了一个脚本来纠正这个问题。 debian-sys-maint 密码明文写在 /etc/mysql/debian.cnf 文件中,所以提取它但在 php 中(我使用 pdo 对象)我无法更改此密码,因此无法重新启动 mysql 服务器。 有时我无法检索 root 用户的密码,这不是主服务器 root 密码。

有时我可以使用 /etc/init.d/mysql stop/start 停止/启动 mysql,有时使用 service mysql stop/start it 这不起作用我尝试使用: mysqladmin -u root -p shutdown(如果我可以更改密码)

如果我真的无法停止 mysql,我会执行 killall mysql(我知道这是错误的) 然后我更改根密码:

/usr/bin/mysqld_safe --skip-grant-tables &
mysql --user=root mysql

有人遇到过和我类似的问题吗?如何使用 innobackupex 跳过 mysql 数据库?

最佳答案

innobackupex 工具是 Percona XtraBackup 的一部分。我在 Percona 工作,我开发了有关 Percona XtraBackup 的培训。

innobackupex 有一些选项可以按名称或正则表达式备份特定的数据库。 @YaK 给出了一个选项,或者您可以在此处查看其他选项:http://www.percona.com/doc/percona-xtrabackup/innobackupex/partial_backups_innobackupex.html

但是,--copy-back 假定您正在将完整备份恢复到一个 数据目录。 IE。如果目标目录不为空,--copy-back 会报错并拒绝覆盖文件。

如果您尝试将 InnoDB 表恢复到您已有 mysql 数据库的实例,则必须手动进行恢复。这可以很简单,只需将文件的 mv 放入您现有的数据目录(当然 MySQL 服务器已关闭)。还记得在启动 mysqld 之前对文件使用 chown mysql:mysql

PS:恢复之前不需要使用--redo-only。该选项用于执行增量备份,即便如此,您也会在执行最终还原之前跳过该选项。

关于mysql - innobackupex 恢复更改 root 和 debian-sys-maint 密码。 mysql重启失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17301048/

相关文章:

MYSQL (Percona) 无法从存储引擎读取自增值

php - MySQL 和 PHP 使用用户时区

MySQL 从两个或多个结果集中创建一行

google-app-engine - 在本地恢复应用引擎实体

c++ - 增量备份 : how to track file deletions

mysql - 使用 gzip 运行 innobackupex 并将显示输出管道显示到文件

mysql - COALESCE 两个日期返回二进制?

mysql - MySQL 中的舍入函数

mysql - mysqldump 转储完整模式所需的最小授权? (触发器不见了!!)

mysql - 无法在 pt-online-schema-change 中更改列和更改索引