MySQL-001-specified key was too long ; max key length is 767 bytes
2016-09-21 16:56
567 查看
我们先分析下这是个什么问题:指定的键太长了,键的最大长度是767字节。这是我在往MySQL里跑数据库脚本的时候遇到的!
![](http://img.blog.csdn.net/20160921165712109)
这是我从服务器上down下来的,服务器就是用的MySQL,为什么本地不行呢?所以脚本是没有问题的,有问题的是本地数据库。先说下我的解决方法,我中间试过的没有效果的我也要在后面吐槽下。
解决方法:重新安装5.x版本的MySQL,重新运行脚本,顺利跑完,心情舒畅。
原因:5.x版本中明确了支持varchar的最大长度为255,但是6.0版本中并没有说明,所以重新安装5.0版本的就可以了。
正文说完了,就来吐槽下网上的各种不靠谱以及靠谱但不过用的解决建议。
1):将varchar的长度设小点。在自己玩的时候这个削足适履的方法是可以用的,但是我的表是从服务器上down下来的,高达192MB,默默寻找下个方法。
2):修改字符集。在建立数据库的时候要将数据库的字符集格式设置成和sql脚本一致的格式。我使用的字符集是UTF-8的字符集,整个项目的设定也是使用UTF-8的字符集,所以不会是字符集的问题。如果修改可能会使得项目在运行时出现乱码。即便是修改了,也没有解决这个问题。
3):确认存储引擎,在myslq中输入:show engines;回车,就会显示出mysql的存储引擎列表和当前的默认引擎。确认当前存储引擎是不是InnoDB,如果不是就设置为当前引擎。(注:当我展示当前引擎时,显示的是InnoDB引擎,所以不是这个问题。有时间可以试下,在5.0版本中换成其他引擎是否会报这个错误)
注明:环境–》win10 64位
这是我从服务器上down下来的,服务器就是用的MySQL,为什么本地不行呢?所以脚本是没有问题的,有问题的是本地数据库。先说下我的解决方法,我中间试过的没有效果的我也要在后面吐槽下。
解决方法:重新安装5.x版本的MySQL,重新运行脚本,顺利跑完,心情舒畅。
原因:5.x版本中明确了支持varchar的最大长度为255,但是6.0版本中并没有说明,所以重新安装5.0版本的就可以了。
正文说完了,就来吐槽下网上的各种不靠谱以及靠谱但不过用的解决建议。
1):将varchar的长度设小点。在自己玩的时候这个削足适履的方法是可以用的,但是我的表是从服务器上down下来的,高达192MB,默默寻找下个方法。
2):修改字符集。在建立数据库的时候要将数据库的字符集格式设置成和sql脚本一致的格式。我使用的字符集是UTF-8的字符集,整个项目的设定也是使用UTF-8的字符集,所以不会是字符集的问题。如果修改可能会使得项目在运行时出现乱码。即便是修改了,也没有解决这个问题。
3):确认存储引擎,在myslq中输入:show engines;回车,就会显示出mysql的存储引擎列表和当前的默认引擎。确认当前存储引擎是不是InnoDB,如果不是就设置为当前引擎。(注:当我展示当前引擎时,显示的是InnoDB引擎,所以不是这个问题。有时间可以试下,在5.0版本中换成其他引擎是否会报这个错误)
注明:环境–》win10 64位
相关文章推荐
- mysql: Specified key was too long; max key length is 767 bytes
- MySQL错误:Specified key was too long; max key length is 767 bytes
- MySQL: ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
- MySQL: ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
- mysql [Err] 1071 - Specified key was too long; max key length is 767 bytes
- EF MySql:Specified key was too long; max key length is 767 bytes解决方案
- mysql [42000][1071] Specified key was too long; max key length is 767 bytes
- MySQL中ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes错误的处理
- mysql: Specified key was too long; max key length is 767 bytes
- MySQL: ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
- 关于MySQL字符集问题:Specified key was too long; max key length is 767 bytes
- 关于MySQL字符集问题:Specified key was too long; max key length is 767 bytes
- Specified key was too long; max key length is 767 bytes mysql
- MySQL----ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
- Hive集成Mysql作为元数据时,提示错误:Specified key was too long; max key length is 767 bytes
- MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
- mysql Specified key was too long; max key length is 767 bytes
- Mysql Specified key was too long; max key length is 767 bytes
- mysql:Specified key was too long; max key length is 767 bytes
- MySQL: ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes