`
LiYunpeng
  • 浏览: 952236 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

重启MySQL服务后,导致数据表不存在的问题记录

阅读更多
最近发现了个问题,如标题。

具体操作说不清了,但大概是这样的
我使用MySQL Workbench来进行数据模型的同步,然后在修改一些原有表的设计的时候,Workbench把我的表外键给删掉了,我也没有在意,就同步了数据库。
然后在MySQL服务重启之后就出现了这种状况,如果你也是这种状况,can't select from existing table because it doesn't exist ,那么八成是我这里描述的问题。


问题解决
1.打开MySQL的errorLog,具体就在MySQL的安装目录下的my.cnf文件里,添加err-log的生成路径,然后查看错误日志。

2.发现错误日志在查询表的时候,出现如下内容
InnoDB: Load table 'mydb/test1' failed, the table has missing foreign key indexes.
也就是无法加载我这个表,不是表丢了,而是无法加载,我这个表找不到对应的外键索引。

后经Google,说者可能是MySQL的一个bug,就是删除了在外键列上的索引导致的,MySQL官方描述的这俩问题
https://bugs.mysql.com/bug.php?id=68148
https://bugs.mysql.com/bug.php?id=74659

3.遇到这个问题的解决办法,就是先将检测外键的功能给关掉
SET FOREIGN_KEY_CHECKS=0;
然后可以通过create index来把索引补回来。
然后再把检测外键的开关打开
SET FOREIGN_KEY_CHECKS=1;

4.补充一下,我遇到的这个问题和上面描述还有一点不太一样,就是我的外键索引是存在的,但是名字居然和我的外键名字完全相同,估计是通过workbench同步的时候生成代码出错导致的,也出现同样的问题,我就讲原来的索引干掉,重新创建了一下之后,问题解决了。
分享到:
评论

相关推荐

    完美解决mysql启动后随即关闭的问题(ibdata1文件损坏导致)

    7. **硬件检查**:考虑检查服务器的硬件,如磁盘是否有坏道,内存是否存在问题,因为硬件故障也可能导致数据文件损坏。 8. **优化配置**:如果问题不在于文件损坏,而是在于配置,比如内存不足,那么调整MySQL的...

    MySQL不停地自动重启的解决方法

    MySQL数据库在运行过程中如果出现不停地自动重启的情况,这通常是由于多种原因导致的,可能是系统资源不足、配置问题、错误的日志满、数据不一致、内存溢出或是硬件故障等。以下是一些排查和解决MySQL自动重启问题的...

    MySQL数据库在服务器断电后进行数据恢复的过程说明

    3. **重启数据库**:保存配置文件并重启MySQL服务。 - **命令示例**: ```bash service mysql restart ``` ##### 步骤三:备份数据 1. **整库备份**:尝试进行全库备份。 - **命令示例**: ```bash ...

    mysql通过data文件夹恢复数据和存储过程的方法

    - **物理恢复**:将备份的文件直接复制回MySQL的`data`文件夹,并重启MySQL服务使其生效。 #### 三、通过Data文件夹恢复数据和存储过程的具体步骤 1. **准备工作**: - **确认备份时间点**:确定需要恢复的数据...

    使用innodb_force_recovery解决MySQL崩溃无法重启问题

    在尝试重启MySQL服务时,遇到了InnoDB引擎的恢复过程失败,报错显示日志序列号扫描过程中发生了错误,并且mysqld进程收到了信号11,这通常意味着可能出现了内存损坏、软件bug或者硬件问题。 二、问题分析 mysqld ...

    MySQL下PID文件丢失的相关错误的解决方法

    在MySQL服务器运行过程中,PID(Process ID)文件丢失或无法找到是常见的问题,这可能导致服务无法正常启动或停止。此问题通常与MySQL的配置、权限、守护进程管理以及网络通信有关。以下是一些解决此类问题的步骤和...

    MySQL 数据库误删除后的数据恢复操作说明(详细)

    修改后,需要重启MySQL服务以使配置生效。 ##### 2. 创建示例表并执行全备份 - 在名为`ops`的数据库中创建一张名为`customers`的表。 - 使用如下命令执行全备份: ```shell mysqldump -u root -p --single-...

    mysql 数据脚本

    结合`stop_mysql`和`start_mysql`两个函数的功能,先停止后启动,实现了MySQL服务的重启,适用于更新配置或恢复服务时。 #### 4. `kill_mysql`函数 当常规的停止方法失效时,此函数通过`kill`命令强行结束所有相关...

    详解MySQL误操作后怎样进行数据恢复

    如果返回的`log_bin`值为`OFF`,则需要在MySQL配置文件(`/etc/my.cnf`)的`[mysqld]`部分添加`log-bin = mysql-bin`或指定自定义路径,然后重启MySQL服务以启用binlog。 接下来,我们将通过模拟数据写入来展示恢复...

    Mysql InnoDB删除数据后释放磁盘空间的方法

    4. 重启MySQL服务,系统会自动重建这些必要的文件。 5. 最后,导入之前备份的数据库文件,恢复数据。 具体的命令操作如下: ```bash # 备份数据库 mysqldump -uroot -proot –quick –force –all-databases > ...

    mysql恢复数据常用方法

    配置完成后重启MySQL服务以生效。 3. **查看binlog状态**:可以通过执行`SHOW VARIABLES LIKE '%bin%'`命令来确认binlog是否已正确开启。 #### 五、实例说明 以下是一个实际的操作示例,用于演示如何使用binlog...

    MySQL利用binlog恢复库表

    完成以上配置后,需要重启MySQL服务使设置生效: ```bash systemctl restart mysqld.service ``` **1.2 确认binlog日志文件** 新启用binlog后,每次启动MySQL服务都会生成一个新的日志文件。可以通过以下命令查看...

    MySql常见错误代码

    错误代码 1032 表示记录不存在,可能是由于记录不存在所致。解决方法是检查记录状态。 1036: 数据表是只读的 错误代码 1036 表示数据表是只读的,可能是由于数据表权限不正确所致。解决方法是检查数据表权限。 ...

    Mysql常见错误提示及解决方法.pdf

    Mysql 中常见的错误提示及解决方法,涵盖了文件格式不正确、文件无法打开、创建表失败、数据库已存在、数据库不存在、删除数据库文件失败、读取系统表中的记录失败、服务器非法关机、记录已被其他用户修改、硬盘剩余...

    MySQL日志和数据恢复

    - 系统崩溃:通过重启MySQL服务,通常可以解决由短暂硬件故障引起的崩溃。如果数据库文件损坏,可能需要从备份恢复。 - 数据误删:如果只删除了少量数据,可以尝试`UNDO`操作。如果已启用二进制日志,可以使用`...

    MySQL 错误代码与对应中文含义全集

    1032错误代码提示记录不存在,通常是查询了一个不存在的记录。 1036错误代码表示数据表是只读的,不能对它进行修改。这可能是由于表的定义或服务器状态导致的。 1037错误代码是系统内存不足,请重启数据库或重启...

    MySQL出错代码表

    13. 记录不存在(1032):尝试访问不存在的记录。 14. 数据表是只读的(1036):试图修改只读数据表。 15. 系统内存不足(1037/1041):数据库操作需要更多的内存,但系统内存不足以支持。 16. 排序内存不足...

    MySQL主从配置详解.pdf

    1. 修改配置文件后,要确保配置正确并且重启MySQL服务,错误配置或服务未重启可能导致复制失败。 2. 从数据库无法同步,可能是因为网络连接问题、配置错误或权限不足等问题,需要检查网络、配置文件及权限设置。 3. ...

Global site tag (gtag.js) - Google Analytics