像这种不能创建一个.frm文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql开发者列表当中很多年了,然而这乎又是一种误导。 在很多实例中,这种错误的

像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql 开发者列表当中很多年了,然而这似乎又是一种误导。

在很多实例中,这种错误的发生都是因为mysql一直以来都不能很好的支持的关系的问题, 更不幸的是它也并没有指明到底是哪一个问题会导致上面那种错误,下面我把导致这个可怕 的150错误的常见原因列出来了,并且我以可能性的大小作了排序

已知的原因:

1, 两个字段的类型或者大小不严格匹配,例如,如果一个是INT(10), 那么外键也必须设置成INT(10), 而不是 INT(11) 也不能是 TINYINT. 你得使用 SHOW 命令来查看字段的大小,因为一些查询浏览器有时候把 int(10) 和int(11) 都显示为integer。另外,你还必须确定两个字段是否一个为 SIGNED,而另一个又是UNSIGNED, 这两字段必须严格地一致匹配。

2, 你试图引用的其中一个外键没有建立起索引,或者不是一个primary key , 如果其中一个不是primary key 的放,你必须为它创建一个索引。

3, 外键的名字是一个已经存在的一个键值了,这个时候,你应该检查你的数据库以确保外健名字是唯一的,或者你在键名后面加上几个随机的字符以测试是否是这个原因。

4, 其中一个或者两个表是MyISAM引擎的表,若想要使用外键约束,必须是InnoDB引擎,(实际上,如果两个表都是MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键),你可以通过查询浏览器来设置表的引擎类型

5, 你可能设置了ON DELETE SET NULL, 但是相关的键的字段又设置成了NOTS NULL 值。你可能通过修改cascade 的属性值或者把字段属性设置成 allow null 来搞定这个bug.

6, 请确定你的Charset 和 Collate 选项在表级和字段级上的一致

7, 你可能设置为外键设置了一个默认值,如 default=0

8, 在这个关系里面,其中的一个字段是一个混合键值中的一个,它没有自己独立的索引,这时,你必须为它创建一个独立的索引。

9, ALTER 声明中有语法错误

1、外键的引用类型不一样,主键是int外键是char

2、找不到主表中 引用的列

3、主键和外键的字符编码不一致

4.还有要建立外键的话,要先建立索引。没有建立索引也会出错。

我的问题解决方案是在sql后面加上了如下句话,ok!成功导入脚本

ENGINE=INNODB DEFAULT CHARSET=utf8;

charset对应的换成你的主键表的字符集!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql 错误 150_MySQL教程之error 150错误提示解决办法相关推荐

  1. mysql 1326_mssqlserver无法远程数据库Error: 1326错误解决方法

    今天我在使用mssqlserver时空出不能远程服务器了,Error: 1326错误出现,下面我们来看看关于解决办法吧. 我们在在使用SQL Server时都会遇到使用SQL Server Manag ...

  2. mysql 添加外键时 error 150 问题总汇

    当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的.像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上, ...

  3. rdo远程计算机需要,RDO远程连接时错误提示解决办法

    RDO远程连接时提示"远程计算机需要网络级别身份验证,而您的计算机不支持该验证,请联系您的系统管理员或者技术人员来获得帮助" 1.先用个人电脑自带远程工具mstsc连接到服务器Wi ...

  4. Git pull 错误:fatal: refusing to merge unrelated histories解决办法

    描述 在使用git pull origin master拉取github代码时,报以下错误: fatal: refusing to merge unrelated histories 解决办法 将gi ...

  5. curl 错误:unable to verify the first certificate 解决办法

    CURL 错误:UNABLE TO VERIFY THE FIRST CERTIFICATE 解决办法 事情是这样的: 我在阿里云申请的免费ssl证书到期了,又重新申请了新的免费证书,部署完毕后浏览器 ...

  6. Linux系统安装驱动过程中ko文件加载错误(Required key not available)的解决办法

    Linux系统安装驱动过程中ko文件加载错误(Required key not available)的解决办法 问题描述 在Ubuntu上使用CP210x USB转UART设备时需要安装驱动程序(CP ...

  7. 错误: 加载主类 时出现 LinkageError 解决办法

    错误: 加载主类 时出现 LinkageError 解决办法 在导入本地项目,运行的时候,发生了错误: 加载主类 时出现 LinkageError 的错误,搜索了很多种方法,都没有办法解决,后来,自己 ...

  8. Qt 错误: LNK2019: 无法解析的外部符号 原因及解决办法

    Qt 错误: LNK2019: 无法解析的外部符号 原因及解决办法 删除Qt中的一些用不到的函数或者添加一个新的.ui窗口的时候,我遇到了这个LINK2019无法解析的外部符号错误,网上查了半天可算解 ...

  9. linux mysql 登录报1045_【mysql】linux登录MySQL_报错ERROR_1045_(28000)解决办法

    [mysql]linux登录MySQL_报错ERROR_1045_(28000)解决办法 5年前 (2015-09-17)    作者:Jiaozn    分类:MySQL    阅读次数:1852 ...

最新文章

  1. 一个MySQL锁和面试官大战三十回合,我霸中霸!
  2. Oracle认证成功获取方案
  3. java 对象怎么序列化,java对象序列化总结
  4. java结丹期(13)----javaweb(responserequestservletcontext)
  5. windows下如何查看设备的idVendor(厂商标识)和idProduct(产品标识)?
  6. Flask框架(flask中的蓝图Blueprint)
  7. Android 第三方库RxLifecycle使用
  8. pjsip for Android的编译
  9. vc下禁止按钮连续点击的方法
  10. [日常] nginx与负载均衡
  11. win10中安装step7 5.6
  12. 一寸照纯红色底图片_纯红色背景
  13. 模电学习1. 三极管基础知识及常用电路
  14. 远程桌面连接设置详细步骤
  15. 原生html单页应用,web单页应用
  16. HTML语言源代码实例
  17. Hadoop集群配置
  18. 瑞吉外卖项目学习笔记:P1-项目介绍
  19. html5 图片粒子效果,Canvas + JavaScript 制作图片粒子效果
  20. 基于微信小程序的垃圾分类小程序(语音识别和历史记录查询)(源码已开源)

热门文章

  1. 深入理解javascript作用域系列第三篇
  2. 第十天 Oracle安装前准备工作
  3. hdu-1088 Write a simple HTML Browser
  4. MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)
  5. zoj 1454 Employment Planning
  6. 教你如何打开android4.3和4.4中隐藏的AppOps
  7. baidu收录速度明显慢了
  8. plsq卸载 删除注册表、_别再用老方法卸载电脑软件了,只会让电脑越来越慢
  9. keil内存溢出表现_详细讲解C语言五大内存分区与可执行程序的三段(Text段、Date段、Bss段)【建议收藏】...
  10. java正方形个圆形面积_java计算图形面积(圆形,正方形, 长方形).pptx