2013-10-30 71 views
8

我想從.sql文件恢復數據庫,我已經在phpmyadmin中創建了數據庫,並且還使用瞭如果不存在的命令創建了我正在恢復的.sql文件到數據庫,兩個名稱的數據庫在phpmyadmin和.sql文件中都是「mydatabase」。錯誤1049(42000):未知的數據庫'mydatabasename'

這裏是我用來恢復數據庫的命令。

mysql -uroot -pmypassword mydatabase<mydatabase.sql; 

當我執行上述命令我得到以下錯誤,我也給這個數據庫的用戶的所有權限。

ERROR 1049 (42000): Unknown database 'mydatabasename' 

請幫我解決這個問題。 謝謝,

+5

'mydatabase'!='mydatabasename'。 – eggyal

+1

你檢查了你的.sql文件嗎?也許它引用'mydatabasename'。 –

+0

在腳本中刪除USE'mydatabasename'並重試。 –

回答

2

無論您的轉儲文件的名稱,它的內容是重要的。

你需要檢查你的mydatabase.sql找到這一行:

USE mydatabasename; 

名稱事情做,這是一個你必須在你的命令中使用:

mysql -uroot -pmypassword mydatabasename<mydatabase.sql; 

二爲選擇你:

  1. 刪除USE mydatabasename;在喲烏爾轉儲,並繼續使用:
    mysql -uroot -pmypassword mydatabase<mydatabase.sql;
  2. 更改本地數據庫名稱,以適應一個在您的SQL轉儲和使用:
    mysql -uroot -pmypassword mydatabasename<mydatabase.sql;
+0

非常感謝你,但是這個命令爲我工作了「mysql -uroot -pmypassword -h localhost -D mydatabase

3

打開SQL文件,並註釋掉試圖線路創建現有數據庫並刪除USE mydatabasename並重試。

+0

非常感謝! –

10

如果轉儲文件包含:

CREATE DATABASE mydatabasename; 
USE mydatabasename; 

您可以在CLI只需使用:

mysql -uroot –pmypassword < mydatabase.sql 

它的工作原理。

+0

這工作!謝謝。 – olala

0

您也可以創建一個名爲'mydatabasename'的數據庫,然後再嘗試恢復它。

創建使用MySQL CLI一個新的數據庫:

mysql -u[username] -p[password] 
CREATE DATABASE mydatabasename; 

然後嘗試還原數據庫:

mysql -u[username] -p[password] mydatabase<mydatabase.sql; 
1

我解決了,因爲我有同樣的問題,我給你一些線索:

1。 - 作爲@eggyal評論

mydatabase != mydatabasename 

所以,如果你的文件檢查你的數據庫名稱

2:你要創建的數據庫,你可以不設置你尚未創建數據庫:

mysql -uroot -pmypassword mydatabase<mydatabase.sql; 

改變它:

mysql -uroot -pmypassword <mydatabase.sql; 
0

拉芝的回答爲我工作。

您可以在此頁面的zessx回答評論中查看他/她的回答。但是,如果你也只是調整他/她的回答,我最初有一個問題:mysql -h localhost -u root -p -D mydatabase < mydatabase.sql

此外,我會建議在mydatabase.sql部分中包含它的直接位置在您的計算機中,如"C:\Users\username\desktop"

謝謝。

相關問題