Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 #1214-使用的表格类型不为';不支持全文索引_Mysql - Fatal编程技术网

Mysql #1214-使用的表格类型不为';不支持全文索引

Mysql #1214-使用的表格类型不为';不支持全文索引,mysql,Mysql,我得到一个错误,表示表类型不支持全文索引。我怎样才能做到这一点 这是我的桌子: CREATE TABLE gamemech_chat ( id bigint(20) unsigned NOT NULL auto_increment, from_userid varchar(50) NOT NULL default '0', to_userid varchar(50) NOT NULL default '0', text text NOT NULL, systemtext te

我得到一个错误,表示表类型不支持全文索引。我怎样才能做到这一点

这是我的桌子:

CREATE TABLE gamemech_chat (
  id bigint(20) unsigned NOT NULL auto_increment,
  from_userid varchar(50) NOT NULL default '0',
  to_userid varchar(50) NOT NULL default '0',
  text text NOT NULL,
  systemtext text NOT NULL,
  timestamp datetime NOT NULL default '0000-00-00 00:00:00',
  chatroom bigint(20) NOT NULL default '0',
  PRIMARY KEY  (id),
  KEY from_userid (from_userid),
  FULLTEXT KEY from_userid_2 (from_userid),
  KEY chatroom (chatroom),
  KEY timestamp (timestamp)
)  ;

*

MySQL 5.6之前,MyISAM引擎只支持全文搜索

因此,将表的引擎更改为MyISAM

CREATE TABLE gamemech\u chat(
id bigint(20)无符号非空自动增量,
from_userid varchar(50)非空默认值“0”,
to_userid varchar(50)非空默认值“0”,
文本不为空,
systemtext文本不为空,
时间戳日期时间不为空默认值“0000-00-00 00:00:00”,
聊天室bigint(20)非空默认值“0”,
主键(id),
来自_userid的密钥(来自_userid),
来自_userid_2(来自_userid)的全文键,
密钥聊天室(聊天室),
键时间戳(时间戳)
)发动机=MyISAM;
这里是演示


或者升级到5.6并使用InnoDB全文搜索。

如图所示,只有MyISAM允许全文搜索

试试这个:

CREATE TABLE gamemech_chat (
  id bigint(20) unsigned NOT NULL auto_increment,
  from_userid varchar(50) NOT NULL default '0',
  to_userid varchar(50) NOT NULL default '0',
  text text NOT NULL,
  systemtext text NOT NULL,
  timestamp datetime NOT NULL default '0000-00-00 00:00:00',
  chatroom bigint(20) NOT NULL default '0',
  PRIMARY KEY  (id),
  KEY from_userid (from_userid),
  FULLTEXT KEY from_userid_2 (from_userid),
  KEY chatroom (chatroom),
  KEY timestamp (timestamp)
) ENGINE=MyISAM;

出现此问题的原因是表类型错误。MyISAM是Mysql支持全文索引的唯一表类型

要更正此错误,请运行以下sql

 CREATE TABLE gamemech_chat (
  id bigint(20) unsigned NOT NULL auto_increment,
  from_userid varchar(50) NOT NULL default '0',
  to_userid varchar(50) NOT NULL default '0',
  text text NOT NULL,
  systemtext text NOT NULL,
  timestamp datetime NOT NULL default '0000-00-00 00:00:00',
  chatroom bigint(20) NOT NULL default '0',
  PRIMARY KEY  (id),
  KEY from_userid (from_userid),
  FULLTEXT KEY from_userid_2 (from_userid),
  KEY chatroom (chatroom),
  KEY timestamp (timestamp)
) ENGINE=MyISAM;
*************已解决-#1214-使用的表类型不支持全文索引***************

解决这个问题很简单。人们在这里用非常难懂的词来回答,这些词不容易被非技术人员理解

因此,我在这里提到的步骤非常简单的话将解决您的问题

1.)用记事本打开.sql文件,方法是右键单击“文件”>“编辑”,或只打开一个记事本文件,然后将该文件拖放到记事本上,文件将被打开。(注意:请不要更改文件的扩展名.sql,因为它仍然是您的sql数据库。还要保留sql文件的副本以避免出现任何错误)

2.)单击记事本菜单“编辑>替换”(将弹出一个窗口,显示“查找内容”和“替换为字段”)

3.)在“查找内容”字段中输入ENGINE=InnoDB&在“替换为”字段中输入ENGINE=MyISAM

4.)现在单击“全部替换”按钮

5.)单击CTRL+S文件>保存


6.)现在上传此文件,我相信您的问题将得到解决。…

只需执行以下操作:

  • 用记事本或记事本打开.sql文件++

  • 找到InnoDB并用MyISAM替换所有(大约87个)

  • 保存,现在您可以导入数据库而不会出现错误


  • 从官方参考

    全文索引只能用于MyISAM表。(在MySQL 5.6及更高版本中,它们也可以与InnoDB表一起使用。)全文索引只能为CHAR、VARCHAR或text列创建


    InnoDB with MySQL 5.5不支持全文索引。

    结果表明,尽管我的
    MySQL--version
    正确地显示了最新安装,但我运行的是较旧的MySQL服务。我必须首先停止并卸载旧的Mysql服务:,然后
    C:\wamp\bin\Mysql\mysql5.6.17\bin>mysqld--install
    ,然后Windows开始菜单>搜索>服务>Mysql>StartIs它在5.5?@KDawg中可用:$Mysql-V Mysql版本15.1发行版5.5.60-MariaDB,用于Linux(x86_64),使用readline 5.1,我得到了错误(升级Bugzilla;现在是早上5:19,我非常累,有这么多事情要做,还没有跟上一切)在刚才的问题中(太累了,什么都没注意到;我花了好几次时间阅读了这个答案中的第一句话,还看了mysql-V,才发现问题,所以我回滚了更改,一切都很好——除了版本已经过时和CentOS。也许你知道。哦,好吧。回答:不。)@KDawg我应该说InnoDB在5.5中不支持全文。这是一个替代方案,而不是一个解决方案。你不喜欢外键吗?@ADTC谢谢你的妙笑!你也完全正确。我想补充一点,程序员不需要GUI,但我是一个很重的命令行用户(也不使用Windows)…我还想补充一点,程序员即使在本地编辑文件(而不是在有问题的服务器上,例如在登台环境中),也不需要学习如何上传文件。