前言



我们在使用mysql数据库的时候,有时会因为各种误操作而导致各种问题。下面介绍的导致1146报错的原因及解决方法。



原因



由报错Table ‘xxx.xxxxx’ doesn’t exist可知,其中的mysql.proc表不存在而发生错误。


【1】插入数据或更改数据时使用的表输入错误



【2】linux的mysql区分大小写,数据库中的表名与输入的sql语句中的使用的表名大小写不一致导致的



【3】数据库操作时,误删mysql的文件导致(常见于数据库升级或迁移)



【4】在编译安装mysql时,没有指定innodb存储引擎







解决步骤



【1】查看自己的sql语句是否正确


如此语句正确,则看下一条方法


解决方法如下:

<1>不正确请改正



【2】查看是否有此表,不要忽视大小写


如此表存在,则是linux的mysql区分大小写导致;如此表不存在,则看下一条方法


解决方法如下:

<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】如该表真的不存在,则可能是表被误删或数据库迁移缺失文件等原因导致。


解决方法如下:

方法一:创建此表。(不同表结构根据实际情况)

例如:mysql.servers表的创建。

 CREATE TABLE `mysql.servers` (`Server_name` char(64) NOT NULL,`Host` char(64) NOT NULL,`Db` char(64) NOT NULL,`Username` char(64) NOT NULL,`Password` char(64) NOT NULL,`Port` int(4) DEFAULT NULL,`Socket` char(64) DEFAULT NULL,`Wrapper` char(64) NOT NULL,`Owner` char(64) NOT NULL,PRIMARY KEY (`Server_name`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';flush privileges;

方法二:修复损坏表
(修复方式还有很多种,请查询,只列一种)

repair table 表名;


方法三:拷贝缺失文件(最常用方法)


原理:当表类型是MyISAM时,数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储于”/data/$databasename/”目录中。当表类型是InnoDB时,数据文件则存储在”$innodb_data_home_dir/″中的ibdata1文件中(一般情况),结构文件存在于table_name.frm中。 MySQL的数据库文件直接复制便可以使用,但是那是指“MyISAM”类型的表。 而使用MySQL-Front直接创建表,默认是“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“*.frm”文件,不像MyISAM那样还“*.MYD,*.MYI”文件。MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。 解决方法就是同时拷贝innodb数据库表“*.frm”文件和innodb数据“ibdata1”文件到合适的位置。

<1>从另外相同的mysql数据库或之前的数据库备份中导出该表的数据,然后通过命令行导入进去

<2>或直接拷贝原有数据库文件".frm"、".MYD"、"*.MYI"等文件,如果原数据库引擎是InnoDB,切记还需拷贝ibdata1文件
(暴力点的是直接拷贝之前备份了的data)

<3>重启数据库



【4】如果是编译安装mysql时,没有指定innodb存储引擎

<1>重新编译

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci24 make && make install

Error【1146】:Table 'xxx.xxx' doesn't exist问题原因及解决方法相关推荐

  1. mysqld_exporter报错Error 1146: Table 'my2.status' doesn't exist

    grafana安装mysql simple dashboard后提示Templating init failed Error 1146: Table 'my2.status' doesn't exis ...

  2. mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法

    mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法 参考文章: (1)mysql 直接从date 文件夹备份表,还原数据库之后提示 t ...

  3. Error【1146】:Table ‘xxx.xxx‘ doesn‘t exist问题原因及解决方法

    打开表的右键对象信息,可以查到类型. 方法三:拷贝缺失文件(最常用方法) 原理: 当表类型是MyISAM时,数据文件则以"Table.frm""Table.MYD&quo ...

  4. MySQL 语法问题:You can‘t specify target table ‘xxx‘ for update in FROM clause. 原因及解决方法

    报错信息如下: [Code: 1093, SQL State: HY000] You can't specify target table 'bd_bankaccbas' for update in ...

  5. mysql还原数据库后日期显示3000_mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法...

    补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题. 背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机 ...

  6. 【数据库已解决】Error【1146】:Table ‘xxx.xxx‘ doesn‘t exist问题原因及解决方法

    [1]查看自己的sql语句是否正确 如此语句正确,则看下一条方法 解决方法如下: <1>不正确请改正 [2]查看是否有此表,不要忽视大小写 如此表存在,则是linux的mysql区分大小写 ...

  7. git push的时候报错:error: src refspec xxxxx does not match any. 错误原因和解决方法

    先说一下自己的修改经历 : 我本身想push到的是一个master的分支bugfix/V1120 然而当我执行 git push origin bugfix/V1120 报错 error: src r ...

  8. C++的error C2668: 'pow' : ambiguous call to overloaded function错误原因及解决方法

    1.错误代码 #include <iostream> #include <cmath>using namespace std;int main() {float a;a = p ...

  9. mysql 提示表不存在的解决方法error 1146 Table doesn't exist

    直接拷贝数据库导致提示表不存在的解决方法 电脑重装系统后把原来的mysql data复制进去后大部分表是可以访问的,但是有几个表提示表不存在: error: 1146: Table 'your_tab ...

最新文章

  1. 让机器学习自动帮我们建模,这4个Python库能让你大开眼界
  2. 同步方法和同步代码块
  3. 面试中如何回答“你是否愿意加班”
  4. Codeforces Round #704 (Div. 2) E. Almost Fault-Tolerant Database 思维
  5. android3D动画,绕y轴旋转
  6. python 实现对象去重
  7. 水晶报表合并模块部署指南(.Net2.0,VS2005)
  8. 公式编辑器如何打出空格
  9. 桌面打开计算机快捷,双击电脑桌面快捷方式图标弹出打开方式对话框的解决方法...
  10. Java程序员必备的50道Kafka面试题及解析,面试再也不怕问Kafka了
  11. C++ 字符编码转换之UTF-8/UTF-16/UTF-32
  12. 采用ATSC标准、欧洲DVB-T和日本ISDB-T标准的国家
  13. 计算机wifi共享怎么设置,电脑怎么共享wifi热点 电脑设置wifi热点教程
  14. 信息系统项目管理师考试核心考点汇总
  15. Codeforces Gym 100015B Ball Painting 找规律
  16. Unity3D:2D角色移动篇2:动画的添加
  17. Lamber表达式 List,Map,Set 互相转换
  18. 掌握el-table的formatter方法,提升数据展示效果
  19. 计算机恢复原始桌面图标,如何将电脑界面上的图标恢复到原始样子?
  20. 定宣讲初稿,筑宣讲之基

热门文章

  1. Windows11下wsl的安装与卸载
  2. Marza Gift for GDC 2016
  3. 重学前端学习笔记(五)-JavaScript原型
  4. VoLTE语音编码标准,NV控制
  5. spyder 运行时闪退_记一次spyder打不开(闪退)之后,心累的恢复历程
  6. python语言面试基础_Python面试宝典之基础篇-04
  7. [日常]华为手机允许APP应用后台保持运行,并显示通知
  8. 3DCAT首届行业生态交流会|升大科技CEO邱杰:5G云渲染助力企业培训
  9. Java事件模型与Android事件模型的比较
  10. 热水器哪个牌子好十大排名2022