usuario - mysqldump all databases and users
Respaldar usuarios de MySQL (6)
¿Cómo hago una copia de seguridad de los usuarios de MySQL y sus privilegios?
¿Algo como mysqldump?
Estoy buscando algo como:
mysqldump -d -u root -p MyTable > Schema.sql
Hasta ahora mi experiencia con MySQL no vi nada para respaldar al usuario y sus privilegios a través de una línea de comando.
Pero puedo hacer una copia de seguridad de esos datos críticos haciendo una copia de seguridad de mysql
mysqldump -u root -p mysql > mysql.sql
Los usuarios y privilegios se almacenan en bases de datos llamadas ''mysql''. Puede usar mysqldump para hacer una copia de seguridad de las tablas en la base de datos llamada ''mysql''.
Percona tiene una gran herramienta para esto. pt-show-grants
expulsará a los usuarios y sus permisos para que pueda volver a cargarlos fácilmente.
https://www.percona.com/doc/percona-toolkit/LATEST/pt-show-grants.html
Puede hacer una copia de seguridad de la base de datos mysql usando
mysqldump -u root -p mysql > mysql.sql
y restaurar la base de datos mysql ejecutando
mysql -uroot -p mysql < mysql.sql
No olvides
FLUSH PRIVILEGES
después de restaurar el volcado.
Espero eso ayude...
probablemente bastante obvio para los liners de comandos de mysql, pero para la respuesta de spirit anterior tenía que agregar -u root -ppassword después de ambos comandos mysql
mysql -u root -ppassword -BNe "select concat (''/' '', usuario,'' / ''@ /' '', host,'' / '''') de mysql.user donde user! = ''root''" | mientras lees uh; do mysql -u root -ppassword -BNe "show grants for $ uh" | sed ''s / $ /; /; s / // / / / g ''; done> grants.sql;
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