mysqldump dbname tablename > tablename.sql这样可以吗?

解决方案 »

  1.   

    为恢复时保险没有错误  用 mysqldump --add-drop-table dbname tablename > tablename.sql 如何呢?
      

  2.   

    某些表的丢失可能是你的备份文件中根本就没有相应的表,就是说你备份的时候,不知什么原因令到某些表备份不成功。
    mysqldump dbname tablename > tablename.sql
    这个备份某数据库里的某一个表,如果你丢失了某个表,就可以这样备份出来。
    你可以打开tablename.sql文件看看里面的SQL语句,并适当修改。下面是我备份的一个表导出的文件,我省出了所有的注释。DROP TABLE IF EXISTS `departments`;
    CREATE TABLE `departments` (
      `id` int(11) NOT NULL,
      `name` varchar(50) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;上面建表的SQL语句,但是它没有指明是属于那个数据库的,如果你要它从属于某个数据库,你可以在它前面加上如下的语句:"use databasename;"
    这样你再用mysql -uroot -p <tablename.sql恢复的时候,它就会要你所指定的数据库上恢复。
    LOCK TABLES `departments` WRITE;
    INSERT INTO `departments` VALUES (101,'Engineering'),(102,'Administration'),(103,'Finance');
    UNLOCK TABLES;如果你有别的想法,你可以另外建数据库或表来验证自己的想法。
      

  3.   

    谢谢hy2003fly()```
    我先拟了个方案