ERROR 1046 (3D000) at line 22: No database selected解決方案

來源:互聯網
上載者:User

在練習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.sqlERROR 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

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.