好的,我知道MySQL错误1050是常见的错误。我花了一个半小时阅读其他问题和答案,并尝试了很多事情,但是由于某种原因,我无法让mysql重新工作。
MySQL不显示该表。
SELECT * FROM`table`产生Error 1146: Table doesn't exist。
DROP TABLE`table`产生Error 1051: Unknown table。
DESCRIBE TABLE产生Error 1146。
创建`table`产生Error 1051: Table already exists。
SELECT * FROM information_schema.TABLES WHERE TABLE_NAME ='table'产生一个空结果集。
运行FLUSH TABLES命令,该命令已成功执行,但结果为0 row(s) affected。
REPAIR TABLE产生一个Operation failed消息,指出Table doesn't exist
什么...
因此,很沮丧,我尝试删除整个数据库架构,并得到'Lost connection to MySQL server during query', 2013。
我觉得有些东西损坏了,所以我尝试转到/usr/local/mysql/data/并删除了该文件夹。该模式从MySQL Workbench中消失了。重新创建了架构并尝试同步我的数据库模型,并说该表已经存在。
我不明白这里发生了什么,也无法解决该问题。我只想恢复工作!
它可能仍列在information_schema和/或mysql dbs中。
@ MarcB,Ive查询了information_schema.tables,并返回了一个空结果集。实际上,在删除纲要文件夹并尝试重新同步模型之后,没有纲要表出现在其中。
尝试从命令行或MySQL工具发出FLUSH TABLES命令。
用响应0 rows affected.执行FLUSH TABLES命令,并且指出表存在的错误仍然存??在。
您可能想要尝试以下方法:stackoverflow.com/a/3302837/899126
@ChrisForrence感谢您的建议,我实际上已经阅读了该答案并尝试了解决方案,但没有成功。
@MrSlayer-啊,值得一试。你也读过这个吗?无论如何,祝您好运!
同样检查mysql.db之类的东西。 information_schema是当前表统计信息的实时视图,但它是虚拟数据库,"永久"数据保留在mysql db中的各个表中。
@MrSlayer您如何使用mysqldump -u root -p > db.sql命令创建数据库转储并打开文件,然后查看该表以查看其在文件中的位置!
@JorgeCampos转储字段不显示任何内容,只是一堆注释。 MarcB,什么是mysql.db,如何"检查"它?
@MrSlayer正常的转储文件以一堆注释开头是,但是它应该具有整个数据库的创建并在其中插入脚本。奇怪的是您的文件没有。
好吧,我一直在做一堆测试,并从/ mysql / data删除了该文件夹,所以我并不感到惊讶。
您的数据库已损坏。清理stackoverflow.com/questions/3927690/
在数据库文件夹中,我复制了另一个.frm文件,并为其指定了问题表的名称。 然后运行查询DROP TABLE。 问题解决了!
欢迎您,谢谢您的回答。 请注意,SO不是论坛,而是基于实际问题构建的知识数据库。 您应该考虑改善答案,以便其他有相同问题并落在此处的用户可以理解并将您的解决方案应用于他们的处境。 编程愉快!
我的解决方案是导出所有其他数据库并完全删除MySQL。
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*
# Edit the following file, removing the line `MYSQLCOM=-YES-`.
# you may need sudo for write privileges to edit the file
# TIP: when using vim, use `dd` to delete the line and then `:wq` to save
# the file
sudo vim /etc/hostconfig # remove the line MYSQLCOM=-YES-
重新安装MySQL,启动实用程序,首选项窗格和Workbench之后,我能够成功同步数据库模型。
注释中的@bancer链接可以提供一种替代解决方案,该解决方案不需要完全删除MySQL,但是老实说,查看该答案是非常不切实际的。