检查backupfile.sql文件中是否有 use xxxa
之类的语句,检查数据库中是否经创建了该数据库

解决方案 »

  1.   

    一楼的朋友,谢谢你,
    问题的具体情况是这样的:backupfile.sql文件是我用如下命令
    mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
    进行备份得到的。 我通过Navicat for MySQL这个工具建立名为 xxxa 的数据库,然后用Navicat for MySQL的数据恢复功能(即其内的“运行SQL文件...”)再加上上面得到的备份文件(即backupfile.sql),可以恢复数据,这应该说明backupfile.sql文件是没有问题的。但是我自己用mysql -hhostname -uusername -ppassword databasename < backupfile.sql这个命令恢复时总是失败,具体情况是:
    如果数据库中没有名为 xxxa 的数据库,出现的错误是 ERROR 1049 (42000): Unknown database 'xxxa'
    如果我只建立一个名为 xxxa 的数据库,且该数据库中没有任何东西,再执行mysql -hhostname -uusername -ppassword databasename < backupfile.sql这个命令时,出现的错误是 Unknown command '\0'
    情况就是如上,希望朋友帮忙解决,谢谢。 
      

  2.   

    贴出 backupfile.sql的内容以供分析。或者楼主可以直接逐句执行 backupfile.sql中的语句,看具体是哪一句报错。
      

  3.   

    你需要手动创建这个数据库
    create database xxxa;
      

  4.   


    关于 Unknown command '\0'错误,
    加上 --default-character-set=utf8试试。mysql -hhostname -uusername -ppassword --default-character-set=utf8  databasename < backupfile.sql
      

  5.   

    通过以上各位热心朋友的帮助,问题终于解决,非常感谢。
    步骤如下:
    1.首先创建名为 xxxa 的数据库
    2.接下来运行如下命令
    mysql -hhostname -uusername -ppassword --default-character-set=utf8 databasename < backupfile.sql