MySQL使用mysqldump进行数据备份
mysqldump
mysqldump是MySQL自带的数据备份工具,它需要通过账号密码连接到数据库才能备份数据,可以指定要备份的库和表。默认会生成建表语句、表数据会转成insert语句。
mysqldump --help 可以查看各种可选参数。
备份表
mysqdump -uroot -p db_name [tb1_name tb2_name] > /dir/backup.sql;
当省略表名时,会备份该库所有表。
这种方式备份的侧重点是表,备份文件里面并不会指定表属于哪个库,备份文件里面也不会有use db_name这样的语句用于恢复数据时指定库。
备份库
mysqldump -uroot -p [--no-data] --databases db_name1 db_name2 > /dir/backup.sql; // --no-data指不备份数据,只备份库与表结构。
这种方式备份的侧重点是库与表,备份文件里面会有use db_name这样的语句,方便于恢复数据时知道要把表创建到哪个数据库。
mysqldump -uroot -p --all-databases; // 备份所有库
这种方式,与用--databases选项指定备份所有表,效果一样。
从备份文件恢复数据
mysql -uroot -p db_name < /dir/backup.sql
或者
mysql> use db_name; //必须要先指定数据库名,因为backup.sql里面并没有数据库名的备份信息。
mysql> source /dir/backup.sql;