2012-12-13 105 views
0

我試圖轉儲在亞馬遜的RDS服務,MySQL版本5.5.27上運行的數據庫。下面是我運行命令:mysqldump:無法創建/寫入文件錯誤從亞馬遜RDS

my-ec2-instance# mysqldump -hec2-xx-xx-xx-xx.compute-1.amazonaws.com -uuser -pwhatever mydb 

我收到以下錯誤:

mysqldump: Couldn't execute 'show fields from `MyTable`': Can't create/write to file '/tmp/#sql_1405_0.MYI' (Errcode: 2) (1) 

那麼,既然錯誤消息說,它失敗的「秀場」,我試圖執行「顯示領域從MyTable「直接從mysql解釋器中獲取。我得到什麼似乎是一個文件的問題:

mysql> show fields from MyTable; 
ERROR 1 (HY000): Can't create/write to file '/tmp/#sql_1405_0.MYI' (Errcode: 2) 

然而,對我在收到此錯誤相同EC2實例,我可以創建這個文件並將其刪除:

my-ec2-instance# touch /tmp/#sql_1405_0.MYI; ls /tmp/#sql*;rm /tmp/#sql_1405_0.MYI 
/tmp/#sql_1405_0.MYI 
rm: remove regular empty file `/tmp/#sql_1405_0.MYI'? 

我我已經從我的本地機器上嘗試了同樣的事情,並且得到了相同的結果。谷歌搜索這並沒有結果。我怎樣才能防止這種錯誤發生?

+0

你能澄清一下嗎?你的第一句話似乎表明數據庫在EC2上運行,但是你也提到了RDS。數據庫實際上是否在RDS上,並且您正在嘗試訪問它或將轉儲執行到EC2實例上?你的第一個查詢與轉儲數據庫有什麼關係(它應該是'show columns')?當你真正運行'mysqldump'時會發生什麼? –

+0

邁克,謝謝,我澄清了我的問題,希望它現在讀得更清楚一點。 –

+1

這似乎是RDS實例上的實際文件系統上的問題,顯然你無法控制。可能是一臺壞機器。如果您可以在不中斷生產的情況下這樣做,您是否可以嘗試調整RDS實例的大小以嘗試強制它移動到新機器上? –

回答

0

正如Mike Brant所建議的那樣,我在EC2上調整了實例的大小,這會迫使它切換機器,將其重新調整爲原來的大小,並且問題不再發生。

我仍然不清楚根本原因,但它確實出現了某種特定於我當時使用的EC2實例的某種錯誤狀態或錯誤配置。