我正在尝试转储在Amazon的RDS服务mysql版本5.5.27上运行的数据库。这是我正在运行的命令:
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)
因此,由于错误消息说它在"显示字段"上失败,我尝试直接从 mysql 解释器执行"显示来自 MyTable 的字段"。我得到似乎是文件问题:
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'?
我在本地机器上尝试了同样的事情,得到了相同的结果。谷歌搜索这并没有取得成果。如何防止此错误发生?
正如 Mike Brant 所建议的那样,我在 EC2 上调整了实例的大小,这迫使它切换计算机,将其大小重新调整为以前的大小,问题不再发生。
我仍然不清楚根本原因,但它似乎确实归结为某种错误状态或特定于我当时使用的 EC2 实例的错误配置。