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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java 实现ip代理池请求-爬虫防封、文章阅读刷量

    Java 实现ip代理池请求-爬虫防封、文章阅读刷量实现过程主要分两步:第一步,需要到ip代理平台,注册开通获取代理ip的api接口第二步,请求api接口,获得代理ip列表,实现ip代理请求指定网址。pom需要依赖<!–hutool–> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.6&lt..

    2022年5月28日
    46
  • 修正Thinkphp 3.2 分页Page类以支持URL路由

    修正Thinkphp 3.2 分页Page类以支持URL路由

    2021年10月28日
    31
  • Java基础篇:内部类详解

    Java基础篇:内部类详解

    2021年10月4日
    23
  • 数据采集技术python网络爬虫_精通Python网络爬虫

    数据采集技术python网络爬虫_精通Python网络爬虫Python网络爬虫与数据采集第1章序章网络爬虫基础1爬虫基本概述1.1爬虫是什么1.2爬虫可以做什么1.3爬虫的分类1.4爬虫的基本流程1.4.1浏览网页的流程1.4.2爬虫的基本流程1.5爬虫与反爬虫1.5.1爬虫的攻与防1.5.2常见的反爬与反反爬1.6爬虫的合法性与robots协议1.6.1robots协议1.6.2查看网页的robots协议1.7Python爬虫相关库2.Chrome浏览器开发者工具2.1Chrome浏览器开发者工具简述2.1

    2022年9月1日
    0
  • Visual Studio 2008 序列号 激活 vs2008[通俗易懂]

    Visual Studio 2008 序列号 激活 vs2008[通俗易懂]
    VisualStudio2008简体中文试用版(90天)变永久正式版的两种方法:
    一、先安装试用版,然后在“添加或删除程序”里找到VS2008,点“更改/删除”就会看到一个输入序列号的地方,把下面这个序列号输进去即可,TeamSuite和Professional通用。
    二、把Setupsetup.sdb文件中的[ProductKey]项中对应的序列号即可。
    因为九十天试用版本已经是rtm版本。所以改变序列号以后的升级或者安装,就会变成正式版,不再

    2022年8月10日
    36
  • 四种黑盒测试方法_八大心态的总结怎么写

    四种黑盒测试方法_八大心态的总结怎么写一、等价类划分法1.定义2.划分等价类2.1有效等价类2.2无效等价类3.划分等价类的标准4.划分等价类的方法5.设计测试用例6.三角形实例二、边界值分析法1.定义2.与等价划分的区别3.边界值分析方法的考虑4.常见的边界值5.边界值分析6.基于边界值分析方法选择测试用例的原则7.实例说明8、三角形问题的边界值分析测试用例三、错误推测方法1.定义2.错误推测方法的基本思想:四、因果图方法1.定义2.因果图法产生的背景:3.因果图介绍4.因果图概念5.采用因果图法设计测试用例的步.

    2022年10月3日
    0

发表回复

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

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