mysql中因为版本问题导致using tree导入失败

前段时间因为想自己在家搭建一个工作上的环境,所以就把sql测试库数据导入自己电脑上,但是用Navicat导入的时候,设置的是‘遇到错误继续’,然后等运行sql语句结束后查询导入的结果,只有3个表导入成功。

  然后从导入窗口查询问题,只有几张表导入成功,然后其他都是XX表不存在,然后再sql文件中找到建表语句,放在navicat运行窗口执行,就发现问题所在了,是因为

DROP TABLE IF EXISTS `agency_template`;

CREATE TABLE `agency_template` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) NOT NULL COMMENT ‘代理商的id‘,
`template_id` int(10) NOT NULL COMMENT ‘使用的模版编号‘,
`logo_filename` varchar(256) NOT NULL,
`logo_addr` varchar(512) NOT NULL DEFAULT ‘‘ COMMENT ‘logo图片地址‘,
`alias_url` varchar(256) CHARACTER SET latin1 NOT NULL COMMENT ‘定制的url‘,
`create_at` int(11) NOT NULL,
`last_update_at` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uid` (`uid`)  USING HASH,
KEY `alias_url` (`alias_url`) USING BTREE 
) ENGINE=InnoDB AUTO_INCREMENT=187 DEFAULT CHARSET=utf8;

就是这两句:

UNIQUE KEY `uid` (`uid`)  USING HASH,
KEY `alias_url` (`alias_url`) USING BTREE

需要修改成:

UNIQUE KEY `uid`  USING HASH (`uid`),
KEY `alias_url` USING BTREE (`alias_url`)

在公司就可以导入成功,但是在自己电脑不可以,只是因为mysql版本的问题

(经过:由于从navicat导出的时候是整个数据库导出的,所以sql文件很大,有1.2G,然后写程序将其分解成酶10000行一个文件就可以打开了,其实完全没必要,直接在navicat错误提示框就可以看到错误所在,不过这样也写了分解代码,还是有用的,接下来就是根据写的分解读取的程序将USING HASH和USING TREE的位置替换掉就可以了)

时间: 2024-10-24 23:14:12

mysql中因为版本问题导致using tree导入失败的相关文章

mysql中把一个表的数据批量导入另一个表中(不同情况)

mysql中把一个表的数据批量导入另一个表中 不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段. 本文就将以MySQL数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表 中. 类别一. 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法:(此方法只适合导出两表在同一database) INSERT INTO 目标表 SELECT * FROM 来源表;

mysql的engine不同,导致事物回滚失败的问题

近期在项目上遇到遇到一个头疼的问题,前方销售团队反馈了一个客户那边在创建用户(save object to DB)报错了以后,前台展示了错误,但是数据库却保存了这条记录. 接到这个BUG以后,第一时间查看了事物是否正确回滚,排查了代码后发现事物回滚成功,并且在我的环境下回滚成功,错误没有复现, 这个时候就比较棘手了,客户的事物回滚失败,但是我们的回滚成功,我们的项目使用的是grails框架做的,查询了grails声明性事物回滚的规则,我们的代码没有问题,那我就把问题转移到了数据库身上, 要了客户

eclipse怎么连接到MySQL中的表!!!!!

简介: 用eclipse编写的好的代码,我们怎么才能连接到数据库呢?对于初学者,特别是在连接数据库这块经常会发生一些莫名的错误,一般来说,归根是我们连接数据库这一过程发生错误.那么我们如何来解决呢?那我就来分享一下我连接数据库的操作过程,作为一个参考吧! 首先打开Navicat Premium软件,点击文件,之后点击新建连接,选择MySQL,我个人喜欢用图来描述: 填写连接名(随便取一个英文名),然后填写密码,记住自己的用户名 点击连接测试: 有一些的会报这样的错误: 报这个错误的意思是连接初始

Oracle数据转移Mysql中遇到的问题以及解决办法

前几天因工作需要我得将Oracle数据库中几十张表转移到Mysql中,由于之前没有相关经验,上网简单百度后选用Navcat Premium软件工作. Navcat Premium进行数据转移有三种办法:1.复制表  2.导出.导入数据  3.导出成sql脚本,执行. 一开始使用复制表的方法,打开菜单栏"工具"的数据传输功能,左边选择要复制的表,右边选择连接然后选中目标数据库,接下在就是next by next的一键式操作.这个方法真的很方便,但是bug也很多,最大的bug是数值类型不匹

MySQL中IN子查询会导致无法使用索引

原文:MySQL中IN子查询会导致无法使用索引 今天看到一个博客园的一篇关于MySQL的IN子查询优化的案例,一开始感觉有点半信半疑(如果是换做在SQL Server中,这种情况是绝对不可能的,后面会做一个简单的测试.)随后动手按照他说的做了一个表来测试验证,发现MySQL的IN子查询做的不好,确实会导致无法使用索引的情况(IN子查询无法使用所以,场景是MySQL,截止的版本是5.7.18) MySQL的测试环境 测试表如下 create table test_table2 ( id int a

MySQL 5.5版本解决中文乱码问题时my.ini内[mysqld]项中不能再写default-character-set=utf8

来看看如何解决乱码问题: 在mysql中默认字符集是latin1, 想要设置字符集为uft-8,可以在 my.cnf 文件中添加以下设置: [client] default-character-set=utf8 [mysqld] default-character-set=utf8 skip-character-set-client-handshake #此处是忽略客户端的字符集,使用服务器的设置 (skip语句和client中的default选一个) 当然你可以在建立数据库是规定字符集: 1

Unable to import maven project: See logs for details :导致原因就是环境变量配置的maven版本与idea中的maven版本不一致导致的

百度很多都不对,后来受了启发:https://blog.csdn.net/ashleyjun/article/details/101106810想起来去看看环境变量了 导致原因就是环境变量配置的maven版本与idea中的maven版本不一致导致的 2019-11-05 20:19:41,358 [1307037] ERROR - #org.jetbrains.idea.maven - com.google.inject.CreationException: Unable to create i

vc6.0运用mysql数据库中的编码所导致的乱码问题(接收和输出的编码必须要一致)

[编译中遇见的问题]       ①在用vc 6.0去调用MySQL中的数据时,出现中文乱码       ②不明白mysql中的码制 [开始解决问题]      ①打开mysql控制台        ②开始展示自己        ③打开vc 6.0(配置mysql环境在这里我就不哆嗦了) 走起.....在vc 6.0中复制下列代码,进行连接mysql和调用代码如下: #include <Windows.h>#include <stdio.h>#include <stdlib.

MySql中的字符数据类型

MySql中的varchar类型 1.varchar类型的变化 MySQL数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255根据不同版本数据库来定.在MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可 以存放65532个字节的数据, 起始位和结束位占去了3个字节,也就是说,在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以使用可变长的varchar来存放,这样就能有效的减少数据库文