web-dev-qa-db-ja.com

MySQLユーザーのバックアップ

MySQLユーザーとその権限をバックアップするにはどうすればよいですか?

Mysqldumpのようなものは?

私は次のようなものを探しています:

mysqldump -d -u root -p MyTable > Schema.sql
28
Cherian
mysql -BNe "select concat('\'',user,'\'@\'',Host,'\'') from mysql.user where user != 'root'" | \
while read uh; do mysql -BNe "show grants for $uh" | sed 's/$/;/; s/\\\\/\\/g'; done > grants.sql
39
spirit

あなたはmysqlデータベースをバックアップすることができます

mysqldump -u root -p mysql > mysql.sql

実行することでmysqlデータベースを復元します

 mysql -uroot -p mysql < mysql.sql

することを忘れないでください

FLUSH PRIVILEGES

ダンプを復元した後。

それが役に立てば幸い...

24
jsist

これまでのところ、MySQLでの私の経験では、コマンドラインからユーザーとその特権をバックアップするものは何もありませんでした。

しかし、mysqlをバックアップすることで、これらの重要なデータをバックアップできます

mysqldump -u root -p mysql > mysql.sql
13
simplyharsh

ユーザーと権限はデータベース名「mysql」に保存されます。 mysqldumpを使用して、テーブルをデータベース名「mysql」にバックアップできます。

5
Zoredache

Perconaには、このための優れたツールがあります。 pt-show-grantsは、ユーザーとその権限をダンプして、簡単に再読み込みできるようにします。

https://www.percona.com/doc/percona-toolkit/LATEST/pt-show-grants.html

2
Josh Wilson

上記のスクリプトは一般的なアイデアを提供しますが、非効率的です。彼らはmysqlをn + 1回フォーク/実行しています。 mysqlを2回呼び出すだけで実行できます。

mysql ${logininfo} -B -N -e "SELECT CONCAT('\'',user,'\'@\'',Host,'\'') from user where user != 'root'" mysql | \
while read uh
do
   echo "SHOW GRANTS FOR ${uh};"
done | mysql ${logininfo} -B -N | sed -e 's/$/;/' > ${outfile}

Root以外のユーザーがバックアップを使用したくない場合、または最初のmysql呼び出しのwhere句でuser!= 'whatever'を指定します。

0
cdbunch

毎日のバックアップMySQLユーザーとその特権にスクリプトを使用することをお勧めします。 1つを見てみましょう:

#!/bin/sh

HOSTNAME="localhost"

mysql -h $HOSTNAME -B -N -e "SELECT CONCAT('\'', user,'\'@\'', Host, '\'') FROM user WHERE user != 'debian-sys-maint' AND user != 'root' AND user != ''" mysql > mysql_all_users_$HOSTNAME.txt

while read line; do mysql -h $HOSTNAME -B -N -e "SHOW GRANTS FOR $line"; done < mysql_all_users_$HOSTNAME.txt > mysql_all_users_$HOSTNAME.sql

sed -i.bak 's/$/;/' mysql_all_users_$HOSTNAME.sql

rm mysql_all_users_$HOSTNAME.txt
rm mysql_all_users_$HOSTNAME.sql.bak

このスクリプトの結果は、ユーザーと権限を持つmysqldumpファイルになります。

追伸MySQLにパスワードが必要な場合--pまたは-u username -pmysql -h $HOSTNAME 2か所。

0
Oleh Vasylyev