我有一个脚本,每晚创建生产服务器数据库(mysql 5.1.66 RHEL)的备份,然后在早上晚些时候将数据库恢复到我的开发计算机(mysql 5.6.12 OSX 10.8.4)
服务器 mysqldump 选项是:
mysqldump --user=<username> --password=<secret> --opt --net_buffer_length=5000 --hex-blob --add-drop-database --databases [databasename] > file.sql
将file.sql复制到开发机后,开发机上的恢复代码为:
mysql -u<username> -p<secret> -h127.0.0.1 databasename < $sql
这个脚本运行得很好,但今天我注意到错误:
ERROR 1010 (HY000) at line 22: Error dropping database (can't rmdir './databasename', errno: 66)
我查看了错误代码,发现它的意思是=“对象是远程的”,这对我来说并不是特别有启发性!
顺便说一句,我正在删除数据库,因为之前我收到了 INNODB 表表空间的错误,它是:
ERROR 1813 (HY000) at line 25: Tablespace for table '`databasename`.`table`' exists. Please DISCARD the tablespace before IMPORT.
我在这个论坛上看到了一篇如何修复错误的帖子,但我更感兴趣的是了解发生了什么,这样我就可以防止它再次发生,因为我每天都在运行自动化脚本。
提前感谢您的阅读。