【MySQL】备份和恢复

语法

mysqldump -uslave -p -h127.0.0.1 --single-transaction --set-gtid-purged=OFF database1 table1 table2 table3 >db.sql

排除表

mysqldump  vmsdb --ignore-table=vmsdb.v_freight_switch  --ignore-table=vmsdb.b_alarm_info   >vmsdb.sql

压缩

# 1. mysqldump 备份并压缩sql文件
mysqldump -h主机ip -u用户名 -p密码(也可不输入) 数据库名   | gzip > 压缩后文件位置/xxx_backupfile.sql.gz

# 2. mysql直接用压缩文件恢复
mysql>gunzip < xxx_backupfile.sql.gz | mysql -u用户名 -p密码(也可不输入) 数据库名
————————————————
版权声明:本文为CSDN博主「拾光记忆不微伤」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_22805577/article/details/80483607

摘录

导出整个数据库(包括数据库中的数据)
mysqldump -u username -p dbname > dbname.sql
 
 
导出某些库
mysqldump -uusername -ppassword --databases db1 db2 > db1db2.sql
 
 
导出数据库结构(不含数据)
mysqldump -u username -p -d dbname > dbname.sql
 
 
导出数据库中的某张数据表(包含数据)
mysqldump -u username -p dbname tablename > tablename.sql
 
 
导出数据库中的某张数据表的表结构(不含数据)
mysqldump -u username -p -d dbname tablename > tablename.sql
 
 
将备份文件压缩:
mysqldump -hhostname -uusername -ppassword --databases dbname | gzip > backup-file.sql.gz
 
 
导入数据库:
mysql> use target_dbname
mysql> source /mysql/backup/path/backup-file.sql
或
mysql target_dbname <backup-file.sql
 
 
用mysql命令恢复
mysql -uroot -ppassword db_name < /backup/mysql_bak.sql
如果是压缩的
mysql -uroot -ppassword db_name < `gzip -d /backup/mysql_bak.sql.gz`
 
 
for MyISAM
mysqldump --user=root --all-databases --flush-privileges --lock-all-tables 
--master-data=1 --flush-logs --triggers --routines --events 
--hex-blob >$BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql
 
 
for InnoDB
mysqldump --user=root --all-databases --flush-privileges --single-transaction 
--master-data=1 --flush-logs --triggers --routines --events 
--hex-blob >$BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql
原文地址:https://www.cnblogs.com/liudianer/p/11730407.html