备份单个数据库:
mysqldump -u [用户名] -p[密码] [数据库名] > backup.sql
备份所有数据库:
mysqldump -u [用户名] -p[密码] --all-databases > all_backup.sql
备份特定表:
mysqldump -u [用户名] -p[密码] [数据库名] [表名1] [表名2] > tables_backup.sql
备份单个数据库:
pg_dump -U [用户名] -d [数据库名] -f backup.sql
备份所有数据库:
pg_dumpall -U [用户名] -f all_backup.sql
备份整个数据库:
mongodump --host [主机] --port [端口] -u [用户名] -p [密码] --authenticationDatabase admin --db [数据库名] --out /backup/path
还原单个数据库:
mysql -u [用户名] -p[密码] [数据库名] < backup.sql
还原所有数据库:
mysql -u [用户名] -p[密码] < all_backup.sql
还原单个数据库:
psql -U [用户名] -d [数据库名] -f backup.sql
还原所有数据库:
psql -U [用户名] -f all_backup.sql
还原整个数据库:
mongorestore --host [主机] --port [端口] -u [用户名] -p [密码] --authenticationDatabase admin /backup/path
压缩备份:
mysqldump -u [用户名] -p[密码] [数据库名] | gzip > backup.sql.gz
定时自动备份(使用cron):
# 编辑crontab
crontab -e
# 添加每天凌晨3点备份
0 3 * * * /usr/bin/mysqldump -u [用户名] -p[密码] [数据库名] > /path/to/backup/db_$(date +\%Y\%m\%d).sql
增量备份(使用二进制日志):
# 启用二进制日志
# 在my.cnf中添加:
[mysqld]
log-bin=mysql-bin
# 备份二进制日志
mysqlbinlog /var/lib/mysql/mysql-bin.000123 > binlog_backup.sql