备份全部数据库

mysqldump -u root -p --set-gtid-purged=OFF  --all-databases >backup.sql
mysqldump -u root -p --set-gtid-purged=OFF  --databases db1 db2  > bak.sql

#使用my.cnf文件 --single-transaction 备份时不锁表
# --set-gtid-purged=OFF  有主从时需要加此项,否则从库无法同步到数据

mysqldump --defaults-extra-file=my.cnf --set-gtid-purged=OFF  --single-transaction --all-databases > backup.sql
mysqldump --defaults-extra-file=my.cnf --set-gtid-purged=OFF  --single-transaction --databases db1 db2 > backup.sql


# 将备份文件迁移至目标服务器
scp backup.sql username@ip:/path/backup.sql

指定全部库名备份(忽略mysql…)

#显示所有库名忽略系统mysql,sys...
mysql -s -uroot -p密码 --execute="SHOW DATABASES;" | grep -v 'performance_schema\|information_schema\|mysql\|sys' | awk '{printf("\"%s\" ",$0)}'
#备份
mysqldump --defaults-extra-file=my5.cnf --set-gtid-purged=OFF --single-transaction  --databases "db0" "db1" "db..." >backup.sql

还原全部数据库


mysql -u root -p database_name < /path/backup.sql

GTID 设置 —set-gtid-purged=OFF

mysql导出时加 —set-gtid-purged=OFF,导入新数据库时,会触发记录到新数据库的binlog日志。如果不加,则新数据库不记录binlog日志。
所以做主从时用了gtid,用mysqldump备份时就要加—set-gtid-purged=OFF,否则在主上导入恢复了数据,主没有了binlog日志,同步则不会被同步

 --set-gtid-purged=OFF