MySQL 5.5 + OpenSUSE12.3を使用しています。 mysqldumpの問題に直面した後(OpenSuse Mysqlディストリビューションのバグのようです)、他のバックアップソリューションを探しています。
私はperconaからのxtrabackupを見つけました。これは非常に素晴らしい解決策です。私はそれをバックアップと復元に成功してテストしました。
しかし、私が期待したように完全ではないようです。ユーザー/付与者と構成ファイル(my.cnf)をバックアップしていません...
mysqlpdumpを使用して、次のシェルスクリプトを使用します。
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のドキュメントを見ると、この件については何も見つかりませんでした。
私が知る必要があること:
MySQL UserGrantsのバックアップソリューションは問題ありません。
私は何年もの間それをすることを提唱してきました:
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のUserGrantsのコピーとmy.cnf
で十分です。