您的位置:首页 > 其它

ERROR 1046 (3D000) at line 22: No database selected解决方法

2013-09-17 15:38 579 查看
在练习mysql过程中,由于要删除表,所以提前对表做了一个备份,但是在还原的时候却总是提示如下错误:ERROR 1046 (3D000) at line 22: No database selected
备份命令如下

[root@DB ~]# mysqldump  -uroot -p123456 addam test >/home/addam_test_bak.sql
检查/home下是否有备份

[root@DB ~]# ll /home
-rw-r--r--  1 root      root      2132 Sep 11 23:54 addam_test_bak.sql
查看备份内容,内容已经存在。
开始试验,使用drop删除掉addam库中的test表,删除没问题。为了以后的试验,我现在想要将test恢复,就开始报错
[root@DB ~]# mysql -uroot -p123456 </home/addam_test_bak.sql
ERROR 1046 (3D000) at line 22: No database selected
仔细的检查了一下备份文件的22行,发现在22行是DROP TABLE IF EXISTS `test`;当然会找不到了,因为我的test表示创建在addam的库中的,解决办法就是在它前面加入一条use addam;

21 USE addam;
22 DROP TABLE IF EXISTS `test`;
然后保存退出!再次执行恢复命令,问题得以解决!
那么有人说,删除这一行可以不可以呢?经过试验测试,是不可以滴,呵呵~
20 --
21 /*!40101 SET @saved_cs_client     = @@character_set_client */;
22 /*!40101 SET character_set_client = utf8 */;
23 CREATE TABLE `test` (
删除这一行之后,还是会报同样的错误,因为这个第23行它还是不知道在哪个库里去创建,所以还是直接加一条use addam;比较好。
具体有没有其他办法我还不清楚,因为网上的有些问题跟我的不一样,我也是第一次碰见这种问题,不知道就是解决方法是对是错,只是暂时解决问题。如果哪位大牛有其他的办法,请帮忙指点一下,谢谢!

本文出自 “风之别鹤” 博客,请务必保留此出处http://addam.blog.51cto.com/5041993/1298235
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐