服务器托管控制面板

MySQL5.5.x数据库导入SQL文件时出现#1064-SQL语法错误解决办法

在v5.5.x版本的MySQL数据库中导入早期的SQL备份,会出现‘1064 You have an error in your SQL syntax’ 的错误提示,导致导入失败。这个SQL备份在v5.0.x的版本下却是正常的。这是什么原因呢?

在v5.5.x版本的MySQL数据库中导入早期的SQL备份,会出现‘#1064 You have an error in your SQL syntax’ 的错误提示,导致导入失败。这个SQL备份在v5.0.x的版本下却是正常的。

错误提示:

#1064 You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM AUTO_INCREMENT=1' at line 1in:

[CREATE TABLE xxx ( xxxxx int(11) NOT NULL auto_increment,xxxx datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (xxx) ) TYPE=MyISAM AUTO_INCREMENT=1;]

If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.

MySQL的#1064错误主要是SQL语法错误导致的,MySQL数据会提示检查SQL文件的语法错误。但是我们发现同样的SQL备份,在v5.0.x版本的MySQL数据库下,导入完全正确。这个会是什么问题呢?

在查找资料之后,我们终于在官方网站找到如下解释:
http://dev.mysql.com/doc/refman/4.1/en/create-table.html

The ENGINE and TYPE options specify the storage engine for the table. ENGINE was added in MySQL 4.0.18 (for 4.0) and 4.1.2 (for 4.1). It is the preferred option name as of those versions, and TYPE has become deprecated. TYPE is supported throughout the 4.x series, but likely will be removed in the future.

ENGINE和TYPE是指定数据库存储引擎的两个关键词。ENGINE关键词是MySQL 4.0.18 (4.0的版本) 和 MySQL 4.1.2 (4.1的版本)之后的版本增加进来的。建议以后使用ENGINE这个选项。MySQL 4.x版本都支持TYPE这个选项关键词,但是之后的版本可能会弃用TYPE这个选项关键词。


解决方法:
将SQL备份中的'TYPE'选项关键词替换为'ENGINE' 
 
  


HRAK-V02 香港VPS 租用

  • 2个CPU
  • 内存: 1.5GB
  • 硬盘: 50GB
  • 300GB/月/3M
  • 免费1个IP
  • 180元/月

HRAK-V01 香港VPS租用

  • 一个CPU
  • 内存: 1GB
  • 硬盘: 40GB
  • 200GB/月
  • 免费1个IP
  • 110元/月

EGI-V05 美国VPS租用

  • Xeon E5-2620
  • 内存: 2GB
  • 硬盘: 60GB
  • 2500GB/月
  • 免费1个IP
  • 250元/月