【问题标题】:MySQL Incorrect usage of spatial/fulltext/hash index and explicit index orderMySQL 空间/全文/哈希索引和显式索引顺序的错误使用
【发布时间】:2018-06-03 01:59:06
【问题描述】:

我正在使用 EF 代码优先迁移在 MySQL 上创建数据库架构。但是当我要执行更新数据库的命令时,它会出错,如下所示。

空间/全文/哈希索引和显式索引顺序的错误使用

我遵循了MySQL support 上给出的所有步骤

我曾尝试在 google 和 stackoverflow 上进行搜索。但我无法获得永久解决方案来解决此问题。

  <connectionStrings>
   <add name="DefaultConnection" connectionString="Server=localhost;port=3306;database=testdb;Uid=root;password=*******;" providerName="MySql.Data.MySqlClient" />
  </connectionStrings>

我使用的是 MySQL Workbench 6.3.10。 MySQL 服务器版本为 8.0.11。

对于实体框架代码优先,我使用以下包..

  • EntityFramework - 6.2.0
  • MySql.Data - 6.10.7
  • MySql.Data.Entity - 6.9.12

当我使用最新版本的 MySql.Data (8.0.11) 时,它给了我不同的错误:

提供者未返回 ProviderManifestToken 字符串。

【问题讨论】:

标签: c# mysql asp.net-mvc entity-framework entity-framework-6


【解决方案1】:

您可以尝试运行 Update-Database -verbose 以查看更多日志并确定 EF 尝试使用 CREATE INDEX `IX_id` on `Table` (`col_Id` DESC) using HASH 执行脚本

此错误是由using HASH 引起的。 如果您尝试使用 HASH 创建索引,MySQL 服务器会返回以下消息。

错误代码:1221。空间/全文/哈希索引和显式索引顺序的使用不正确

在您的迁移脚本中找到 .Index(t =&gt; t.col_Id)CreateIndex("dbo.table", "col_Id") 并将其更改如下:

尝试像这样使用BTrees

.Index(t => t.User_Id, anonymousArguments: new { Type = "BTrees"})

CreateIndex("dbo.table", "col_Id" , anonymousArguments: new { Type = "BTrees"}))

这对我有用。

【讨论】:

    猜你喜欢
    • 2018-10-01
    • 2018-10-10
    • 2018-12-10
    • 2023-03-29
    • 2018-11-04
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多