最近发现了个问题,如标题。
具体操作说不清了,但大概是这样的
我使用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同步的时候生成代码出错导致的,也出现同样的问题,我就讲原来的索引干掉,重新创建了一下之后,问题解决了。
分享到:
相关推荐
因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失 (2)如果表的类型是 InnoDB,那么是 15 InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是...
因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大 ID 也不会丢失 (2)如果表的类型是 InnoDB,那么是 15 InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是...
因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失 (2)如果表的类型是 InnoDB,那么是 15 InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是...
# 注:这两个参数不支持动态改变,需要把该参数加入到my.cnf里,修改完后重启MySQL服务,允许值的范围从 1-64 innodb_thread_concurrency = 0 # 默认设置为 0,表示不限制并发数,这里推荐设置为0,更好去发挥CPU多核...
因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失 (2)如果表的类型是 InnoDB,那么是 15 InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是...
因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失 (2)如果表的类型是 InnoDB,那么是 15 InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是...
关键字重复,更改记录失败1023:关闭时发生错误1024:读文件错误1025:更改名字时发生错误1026:写文件错误1032:记录不存在1036:数据表是只读的,不能对它进行修改1037:系统内存不足,请重启数据库或重启服务器...
您可能感兴趣的文章:MySQL优化配置文件my.ini(discuz论坛)千万级记录的Discuz论坛导致MySQL CPU 100%的优化笔记由于mysql运行权限导致无法找到 Discuz! 论坛数据表! 的解决方法MySQL针对Discuz论坛程序的基本优化教
1.5.1 生产环境不能用强制命令关闭 mysql 服务 .......................................................22 1.5.2 下面来介绍优雅关闭数据库方法: ................................................................
6) 修改MYSQL支持库跨静态编译的EXE和DLL传递连接句柄和记录集句柄无效的BUG(改动较大,可能会产生兼容性问题,我们已经仔细测试,也请使用到此库的用户帮助我们多多测试,以便及早发现问题,谢谢) 7) 其它修改 ...
//创建远程服务对象 (参数1 服务端口号 日志对象,如果不需要记录日志请填nil) Gob_RmoDBsvr := TRmodbSvr.Create(FSvrPort, nil); //连接数据库 可以是ADO支持的所有数据库 调用TDBMrg提供的获取各种数据库的链接...
因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用 shutdown命令,系统管理员会通知所有...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
它提供了个人自我学习及成长发 展的工具及环境,您可以一门课程,建立一个博客,在这个博客里, 您可以记录您学习此课 程的心得及历程,此博客您可以分享给教师或同学 , 让他们了解您学习此课程的状况及进 度。...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...