1146: Table doesn't exist(表不存在)
MySQL含义
查询中引用的表不存在,或在当前数据库中找不到。
原因
表确实不存在、选择了错误的数据库、表名拼写错误、Linux 上表名区分大小写(lower_case_table_names),或 InnoDB 表文件(.ibd)丢失/损坏(5.7 及更早版本还包括 .frm 定义文件;8.0 中定义保存在数据字典中)。
解决方法
核实表:SHOW TABLES; 并选择正确的数据库:USE mydb。注意大小写敏感(尤其在 Linux 上)。通过 SELECT ... FROM information_schema.tables 检查表名和 schema。如果存在 InnoDB 文件问题,可能需要恢复/修复。
同一数据库的其他条目
- 1205Lock wait timeout exceeded; try restarting transaction(超出锁等待超时;请尝试重新开始事务)
- 1040Too many connections(连接过多)
- 1064You have an error in your SQL syntax(SQL 语法错误)
- 1054Unknown column in field list(字段列表中存在未知列)
- 2002Can't connect to local MySQL server through socket(无法通过 socket 连接到本地 MySQL 服务器)
- 2003Can't connect to MySQL server (TCP/IP)(无法连接到 MySQL 服务器(TCP/IP))
- 2006MySQL server has gone away(MySQL 服务器已断开)