Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对导入数据库上的特定mysql错误进行故障排除_Mysql - Fatal编程技术网

对导入数据库上的特定mysql错误进行故障排除

对导入数据库上的特定mysql错误进行故障排除,mysql,Mysql,我在尝试导入mysql转储时遇到错误: [ERROR in query 369] Specified key was too long; max key length is 767 bytes 是否有一种简单的方法可以找到此查询所指的查询,以便我可以对其进行诊断?否则,我需要找到哪一个是第369个查询,然后调查这一点,以及index语句中是否有错误,或者这是否是版本问题。查找此查询所指的查询的最佳方法是什么?问题来自于在InnoDB表中创建索引,该表的每个索引限制为767字节。因此,在一列上有

我在尝试导入mysql转储时遇到错误:

[ERROR in query 369] Specified key was too long; max key length is 767 bytes

是否有一种简单的方法可以找到此查询所指的查询,以便我可以对其进行诊断?否则,我需要找到哪一个是第369个查询,然后调查这一点,以及index语句中是否有错误,或者这是否是版本问题。查找此查询所指的查询的最佳方法是什么?

问题来自于在InnoDB表中创建索引,该表的每个索引限制为767字节。因此,在一列上有一个索引,其组合长度大于767字节


如果使用utf8mb4,则宽度大于191(4×191)个字符的单列将导致此问题。最常见的原因是varchar(255)列上的索引。

问题来自于在InnoDB表中创建索引,该表的每个索引限制为767字节。因此,在一列上有一个索引,其组合长度大于767字节


如果使用utf8mb4,则宽度大于191(4×191)个字符的单列将导致此问题。最常见的原因是varchar(255)列上的索引。

我明白了。但是,如何实际查找查询呢。有没有办法找到它引用的查询?检查
createtable
语句/索引创建语句。如果在数据库中更改为
utf8mb4
(4字节),也可以改用uft8(3字节)。在导入之前从表中删除索引。导入查询后,按totallength DESC从表顺序将每个字段的长度(如select LENGTH(字段1)、LENGTH(字段3)、LENGTH(字段3)、LENGTH(字段1)+LENGTH(字段3)作为TOTALLENGHT查询,以查看哪一行的索引最长。您还可以在重新创建索引时设置键长度smaler。但是,如何实际查找查询呢。有没有办法找到它引用的查询?检查
createtable
语句/索引创建语句。如果在数据库中更改为
utf8mb4
(4字节),也可以改用uft8(3字节)。在导入之前从表中删除索引。导入查询后,按totallength DESC从表顺序将每个字段的长度(如select LENGTH(字段1)、LENGTH(字段3)、LENGTH(字段3)、LENGTH(字段1)+LENGTH(字段3)作为TOTALLENGHT查询,以查看哪一行的索引最长。你也可以在重新创建索引时设置密钥长度smaler你可以在文本编辑器中打开转储文件,不是吗?@BillKarwin当然可以,但是我不需要计算出268个查询吗?每个查询都没有自己的行,也有注释……在vim:
368/搜索
368次。emacs中可能有一个等价物,我从来没有花时间学习过emacs。你可以在文本编辑器中打开转储文件,不是吗?@BillKarwin当然可以,但是我不需要计算出268个查询吗?每个查询都没有自己的行,也有注释……在vim:
368/搜索
368次。emacs中可能有一个等价物,我从未花时间学习过emacs。