mysql备份单个表恢复失败
问题
备份数据库
1 | mysqldump -uroot -p database_name tab1 > test.sql; # 远程加 -h |
恢复数据库
- 使用的是source,进入数据库以后
1 | use database_name; |
- 但是失败了,报错,并且tab1表也被删除了
1 | ERROR 1146 (42S02): Table 'database_name.tab1' doesn't exist |
- 注:原来是有这个表的,但是在执行source以后表就被删除了
解决
- 找了好久都没找到原因,看了一下导出的sql文件,发现是先删除表再创建,然后插入数据,猜测是因为创建的时候失败了,导致没有了表。
- sql文件开头有这样一段:
1 | -- ---------------------------- |
- 既然创建失败了,那就不去删除了,直接用自己原来的数据表(但是用保证表的结构是一致的)。
- 修改sql文件,把上面的两句删掉。
- 再执行source,成功!