我在MySQL表上做了一个drop查询...我的GUI界面在进程中间崩溃了。该表不存在于列表中;然而,当我去做一个新的时,它说已经有一个有这个名字的桌子了。我尝试在这个幻像表上执行DROP TABLE和RENAME,但两个查询都无休止地运行。
仅供参考我无法重启MySQL,因为我们的实时网站可能会破坏。
非常感谢任何帮助。
答案 0 :(得分:0)
答案 1 :(得分:0)
tablename匹配文件系统中的三个文件,其中.frm
,.myd
和.myi
扩展名(分别用于表定义,数据和索引文件)其中一个文件已损坏,这会阻止MySQL执行您的订单。
选项1从文件系统中删除文件
查看文件系统以查看哪个文件仍然存在
如果缺少.frm文件,您应该能够删除其他两个文件
如果.frm文件仍然存在不删除,MySQL仍然锁定该文件。
选项2修复数据库
使用myisamchk
诊断和修复数据库。
请参阅:http://forge.mysql.com/wiki/MySQL_Internals_File_Formats
并且:http://dev.mysql.com/doc/refman/5.0/en/myisam-repair.html
答案 2 :(得分:0)
检查mysql存储数据库的目录。在Ubuntu上它位于/ var / lib / mysql中,但它可能会有所不同,具体取决于您的操作系统和配置。在该目录中,每个数据库都有一个目录,进入有问题的数据库的目录,并删除任何扩展名为.frm,.myd和.myi的表名的文件。
答案 3 :(得分:0)
听起来你所拥有的服务与认为的服务器之间存在脱节。
您需要SSH访问权限并且必须手动修复表。
登录SSH并输入:
mysql -u root -p
输入你的root mysql密码。
然后
show databases
它将列出您服务器上的所有数据库。
使用
选择所需的数据库use databasename;
然后
show tables;
这应该列出数据库中的每个表。它可能仍然出现在那里,所以做一个
drop tablename;
希望这会纠正您的问题。
答案 4 :(得分:0)
结束从备份恢复...文件系统中的编辑文件很可怕,可能需要重新启动。