1146 mysql_MySQL–ERROR 1146 (42S02):table doesn’t exist

1146 mysql_MySQL–ERROR 1146 (42S02):table doesn’t existERROR1146(42S02):Table‘xxx’doesn’texist可能是很多人都遇到的问题,尤其在数据库迁移或备份的时候mysql数据目录结构mysql数据目录下有如下几个重要文件:ibdata1ib_logfile0ib_logfile1数据库xx以及该目录下的一系列.frm文件其中ib_logfile0和ib_logfile1是关于数据库的一些日志文件数据…

大家好,又见面了,我是你们的朋友全栈君。

ERROR 1146 (42S02): Table ‘xxx’ doesn’t exist 可能是很多人都遇到的问题,尤其在数据库迁移或备份的时候

mysql数据目录结构

mysql数据目录下有如下几个重要文件:ibdata1

ib_logfile0

ib_logfile1

数据库xx 以及该目录下的一系列 .frm 文件

其中

ib_logfile0 和 ib_logfile1 是关于数据库的一些日志文件

数据库xx 是默认数据库和我们添加的数据库目录

ibdata1 存储了数据库的真实表数据

.frm 是存储了数据库表的结构描述说明

失误的操作过程

当我们把其他mysql下的目录,拷贝到我们新的mysql数据目录的时候,(仅仅是copy目录)

启动数据库,可以正常使用 show databases; 和 show tables;

但是在我们想继续查询表数据的时候 select * from video; ,报错了:

ERROR 1146 (42S02): Table ‘djangomysql.getvideo_video’ doesn’t exist1

2MariaDB [videos_db]> select * from video;

ERROR 1146 (42S02): Table ‘videos_db.video’ doesn’t exist

继续探索原因

因为数据库目录 和 表结构也是存储在 .frm 文件内,因此我们可以正常使用 show databases; 和 show tables;

为什么查询表数据的时候发生错误呢?

那是因为ibdata1 文件受影响了,表数据存储在ibdata1中

mysql是通过缓存的方式写入数据到ibdata1,当我们异常拷贝ibdata1的时候,可能缓存数据还没写入,导致有点出入,因此操作顺序很重要

解决方案

介于ibdata1数据被影响了,我们需要矫正下数据写入顺序,如下:

1、在新mysql数据目录下新建我们需要拷贝的数据库 mysql/videos, 同时把旧mysql中对应数据库下的文件全部拷贝过来

2、启动mysql,查询 show databases 和 show tables 确定无误后,退出mysql shell,停止mysql服务(比如 service mariadb stop)

3、然后把旧mysql中的ibdata1文件拷贝到新mysql数据目录下 mysql/ibdata1,这个时候我们会发现目录下有 ib_logfile0 ib_logfile1 和 ibdata1

4、再次启动新的mysql服务,然后验证,mysql服务正常了……

反思

数据库需要严格的备份流程、恢复流程,避免一些低级的操作方式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134399.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 免杀工具charlotte详解,想要成为白帽子,你不会连这个工具都不会用吧?「建议收藏」

    免杀工具charlotte详解,想要成为白帽子,你不会连这个工具都不会用吧?「建议收藏」前言多看看别人的工具,自己也就会写了。(手动狗头)charlotte是一款Python编写的自动化免杀工具,用来生成免杀的dll文件,在antiscan.me上为全绿,效果可见一斑。官方地址如下:https://github.com/9emin1/charlotte,其依赖mingw-w64环境,可使用下面的命令安装:apt-getinstallmingw-w64*利用动态导出以及xor编码实现了对杀软的绕过。其文件很简单,只有一个简单的py文件以及一个cpp文件,根据以后以往的经验来看

    2022年8月20日
    7
  • vim保存并退出有几种方法_ubuntu vim保存退出命令

    vim保存并退出有几种方法_ubuntu vim保存退出命令vim基础保存退出命令vimxxx.file输入文件内容;ins按键,切换插入和增加按ESC,左下角就可以进行输入:w保存但不退出:wq保存并退出:q退出:q!强制退出,不保存:e!放弃所有修改,从上次保存文件开始再编辑命令历史…

    2022年8月24日
    8
  • java开发区块链只需150行代码

    java开发区块链只需150行代码本文目的是通过java实战开发教程理解区块链是什么。将通过实战入门学习,用Java自学开发一个很基本的区块链,并在此基础上能扩展如web框架应用等。这个基本的java区块链也实现简单的工作量证明系统。

    2022年7月3日
    25
  • Postman安装与入门简单教程[通俗易懂]

    Postman安装与入门简单教程[通俗易懂]在测试技术中,接口测试是最基础、最重要,也是收益最高的测试技术,作为接口测试工具中的No.1,一起来看看Postman是怎么入门的吧。目录1.安装Postman2.注册Postman账号并登录3.创建Collections4.创建Request5.简单的Demo测试1.安装PostmanPostman下载地址:https://app.getpostman.com/app/download/win64点开后机会自动下载最新版的Postman,如果链接打不开或者很慢也可以上百度去下载,版本旧一点没关系,

    2026年1月16日
    5
  • auto_increment 自增键的一些说明

    auto_increment 自增键的一些说明

    2021年11月7日
    52
  • 丫丫考了100分_小明考了0分

    丫丫考了100分_小明考了0分CCF201812-1小明上学题目背景  小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。  京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。假设红绿灯被设定为红灯r秒,黄灯y秒,绿灯g秒,那…

    2022年5月3日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号