mysql 1005 - can't create table_关于创建数据表报错一例(ERROR 1005 Can’t create table (errno: 121))...

问题描述

曾遇到创建数据表报错问题,报错如下:

ERROR 1005 (HY000) at line 18: Can't create table 'db1.t2' (errno: 121)

通过日志查看有一条记录

InnoDB: Error: table `db1`.`t2` already exists in InnoDB internal

可见要创建的这个表已经存在,导致创建同名数据表报错,但是从数据库目录上查看确实没有这个表文件。

原因分析

事实上,导致这种情况是由于删除数据表时直接删除了源文件,而没有通过SQL命令来删除。这种错误的方法对MyISAM引擎的数据库有时候是管用的,但是对于InnoDB引擎的数据库则是一定不管用的。

因为对于InnoDB引擎的数据库,当创建一个表时,会在数据库目录中创建一个.frm格式(如t2.frm)的表结构文件,同时,内部地,InnoDB会为这个表向自己的数据目录添加一个条目。当把源文件(t2.frm)直接删除时,InnoDB内部数据目录中并没有删除对应的条目。

这时,你运行show tables,由于该命令是通过表结构文件检索的,自然查看不到这个表。

如果尝试重新导入数据,由于.sql文件中的语句写的是"drop table if exists 't2'",最终也会因查不到表而不去执行drop命令。

处理方法

1. 对于MyISAM引擎的数据库

如果之前删的表文件是空表文件,则可以直接create创建(这种情况不会出现上面的报错;如果之前删的是有数据的表文件,则直接创建是不管用的,需要先执行"drop table 表名",然后再重新创建该表即可。

2. 对于InnoDB引擎的数据库

可以先尝试执行"drop table 表名",然后再重新创建该表;如果仍有问题,则需要创建一个临时数据库,在临时数据库中创建一个同名数据表,然后将该表文件(只有一个.frm文件)复制到当前的数据库中,赋予mysql权限,然后再执行"drop table 表名",再重新创建该表即可。

喜欢 (0)or分享 (0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

h5输出文字write_免费下载:Write是用于手写的文字处理器

h5输出文字writeWindows/Mac/Linux/Android: Love the feel of writing by hand, but wish you could use features like copy/paste and undo? Write is a free tool that lets you do just that. Windows / Mac / Linux / Android:喜欢手写的感觉,但是…

11. IDEA 在同一工作空间创建多个项目

1.创建项目 二.、创建工作空间 JavaWorkspace 1、File-> New Project -> 创建工作空间 JavaWorkspace,并 顺便创建项目 JavaOne 2.创建第一个项目后形成的目录结构如下 三、在已经创建好的工作空间中创建第二个项目 1、File -> New Module -> 创建项目 …

winform 线程监听两个目录下的文件_vb.net 利用.net自带的GZipStream压缩或者解压文件的代码,不需要任何第三方控件...

网上很少有用VB写的压缩文件的代码,但是,在网络传输,文件下载,打包发布等等方面的需求又比较多,所以,借鉴了一下C#代码的例子,改造成了VB用的类。另外加上了多层文件夹压缩解压。但是,因为时间有…

什么是“ rpcsvchost”,以及为什么它在Mac上运行?

You find something called rpcsvchost while using Activity Monitor to see what’s running on your Mac. What is this process, and should you be worried? In a word, no: rpcsvhost is a core part of macOS. 在使用“活动监视器”查看Mac上正在运行的内容时&#xff…

自定义异常禁用异常堆栈_如何在Mac上禁用或自定义自动更正

自定义异常禁用异常堆栈Sometimes, autocorrect gets it wrong, replacing a word you meant to type with something completely different. You can customize it to fix these issues or disable it altogether. 有时候,自动更正会把它弄错,用完全不同…

控制dcom程序使用端口_使用VS Code调试.net控制台应用程序的方法

本文由 比特飞 原创发布,欢迎大家踊跃转载。转载请注明本文地址:https://www.byteflying.com/archives/6928。1、概述本文向大家介绍使用Visual Studio Code调试.net控制台应用程序的方法。2、方案首先在创建好一个控制台应用程序,再在扩展中…

omnipay支付--支付宝支付

最近负责的项目事关支付宝APP支付 也踩了一些坑 这边记录下 以下代码基于laravel框架下: 生成APP支付参数: $gateway $this->getGateway();$request $gateway->purchase();$request->setBizContent([subject > ,//产品描述out_trade_no > ,//本地订单号…

4khz的带宽是指什么意思_扬声器和耳机的Hz-KHz范围是什么意思?

4khz的带宽是指什么意思If you’ve looked at high-end headphones or speakers, you’ve probably noticed numbers on the spec sheet that read something like “20Hz-20KHz.” What do these numbers mean? 如果您看过高端耳机或扬声器,则可能已经注意到规格表…

mysql两种引擎的适用场景_MySQL两种引擎的区别和应用场景

Innodb引擎Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL运行时Innodb会在…

linux里查看最耗CPU的线程

1、top后按c查看最耗cpu的进程,得到pid 2、top -Hp pid 查看该进程里的线程资源使用情况,找到最耗资源的线程的pid 3、jstack pid来查看进程的各个线程栈,注意这里的pid是第一步中进程的pid,不是第二步得到的线程id 4、将第二步得…

vlc传输_如何使用VLC通过网络流式传输视频和音乐

vlc传输VLC includes a fairly easy-to-use streaming feature that can stream music and videos over a local network or the Internet. You can tune into the stream using VLC or other media players. VLC包括一个相当易于使用的流媒体功能,可以通过本地网络…

python实现异步的几种方式_终于搞明白了,异步Python比同步Python究竟快在哪里?...

大家好,你是否听人们说过,异步 Python 代码比“普通(或同步)Python 代码更快? 果真是那样吗?同步和异步是什么意思?Web 应用程序通常要处理许多请求,这些请求在短时间内来自不同的客户端。为避免处理延迟&a…

您可能没有注意到的7个Ubuntu File Manager功能

The Nautilus file manager included with Ubuntu includes some useful features you may not notice unless you go looking for them. You can create saved searches, mount remote file systems, use tabs in your file manager, and more. Ubuntu随附的Nautilus文件管理器…

P3174 [HAOI2009]毛毛虫(树形dp)

P3174 [HAOI2009]毛毛虫 题目描述 对于一棵树,我们可以将某条链和与该链相连的边抽出来,看上去就象成一个毛毛虫,点数越多,毛毛虫就越大。例如下图左边的树(图 1 )抽出一部分就变成了右边的一个毛毛虫了&am…

wdcp mysql密码_WDCP提示无法连接mysql及创建站点提示mysql密码不正确

一、wdcp系统访问提示无法连接mysql1、可能是mysql服务没启动,首先ssh登陆服务器,然后执行service mysqld restart重启mysql再访问试下,如果无法启动,先用df -lh查看下home分区有没有挂载,如果没有挂载尝试先重启&…

applecare多少钱?_否,AppleCare +无法覆盖丢失或被盗的iPhone

applecare多少钱?Losing your iPhone or getting it stolen is pretty common these days, but it’s important to know that while AppleCare covers accidental damage, it doesn’t cover a lost or stolen iPhone. 如今,丢失iPhone或使其被盗很普遍&#xff0…

10以内数的组成分解图_大班数学教案《10以内数的组成》

大班数学教案《10以内数的组成》作为一名教学工作者,时常需要编写教案,借助教案可以让教学工作更科学化。那么什么样的教案才是好的呢?以下是小编收集整理的大班数学教案《10以内数的组成》,希望能够帮助到大家。大班数学教案《10…

HDFS文件目录操作代码

分布式文件系统HDFS中对文件/目录的相关操作代码,整理了一下,大概包括以下部分: 文件夹的新建、删除、重命名文件夹中子文件和目录的统计文件的新建及显示文件内容文件在local和remote间的相互复制定位文件在HDFS中的位置,以及副本…

craigslist_如何设置Craigslist警报(用于电子邮件或SMS)

craigslistWhether you’re looking for apartments or used gadgets on Craigslist, you don’t have to keep checking the website. You can stay on top of things by getting notified when new posts go up that match your searches. 无论您是在Craigslist上寻找公寓还是…

merge r语言daframe_R语言总结

R语言总结数据框操作(plyr包)辅助小函数1 splat函数:作用:把原函数中多个参数打包为一个list作为参数,然后输出新的函数。也就是说本来某个函数需要输入多个参数,现在套上splat后,只要输入一个参数list就可以了&#x…