原因:
1.插入数据或更改数据时使用的表输入错误
2.linux的mysql区分大小写,数据库中的表名与输入的sql语句中的使用的表名大小写不一致导致的
3.数据库操作时,误删mysql的文件导致(常见于数据库升级或迁移)
4.在编译安装mysql时,没有指定innodb存储引擎
解决方法:
1.查看自己的sql语句是否正确
2.查看是否有此表,不要忽视大小写
我是配置文件连的数据库连错了
解决方法如下:
<1>查找该mysql数据库的配置文件my.cnf的路径
<2>在my.cnf中的[mysqld]下,追加lower_case_table_names = 1 1表示不区分大小写,0区分大小写
<3>重启mysql,重新在此表插入数据,看是否可用
systemctl restart maraidb/mysqld(centos7)
/etc/init.d/mysqld restart(centos6)
3.如该表真的不存在,则可能是表被误删或数据库迁移缺失文件等原因
方法一:创建此表。
方法二:修复损坏表
repair table 表名;
方法三:拷贝缺失文件(最常用方法)
<1>从另外相同的mysql数据库或之前的数据库备份中导出该表的数据,然后通过命令行导入进去
<2>或直接拷贝原有数据库文件”.frm”、”.MYD”、”*.MYI”等文件,如果原数据库引擎是InnoDB,切记还需拷贝ibdata1文件
<3>重启数据库
4 如果是编译安装mysql时,没有指定innodb存储引擎
<1>重新编译