【问题标题】:asp.net core 2 showing specified key was too long; max key length is 3072 bytesasp.net core 2 显示指定键太长;最大密钥长度为 3072 字节
【发布时间】:2018-06-09 13:56:17
【问题描述】:

我正在开发 .net core 2。我使用 mysql 作为数据库。当我编写以下代码dbContext.Database.EnsureCreated(); 时,它正在生成一个错误

MySql.Data.MySqlClient.MySqlException: '指定的键太长;最大密钥长度为 3072 字节'

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ApplicationDbContext dbContext)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            // ===== Create tables ======
            dbContext.Database.EnsureCreated();

            app.UseMvc();
        }

我能够成功生成角色声明、角色、用户声明、用户。 我正在使用扩展 IdentityDbContext 的 applicationDbcontext。

如何解决此错误。 需要帮助提前谢谢。

【问题讨论】:

  • 您尝试创建一个主键为way too long的表
  • @StuartLC 好的,我该怎么做,你能建议我吗?我被卡住了。

标签: c# mysql asp.net-identity asp.net-core-2.0 asp.net-core-webapi


【解决方案1】:

我也面临这个问题我要做的是

  1. 打开命令提示符并转到项目位置然后运行以下命令

    dotnet ef 迁移脚本 -o initial.sql

  2. 它将生成 sql,打开文件并使用 VARCHAR(100) 删除所有 VARCHAR(767)

在 sqlyog/workbench 中运行 sql,您将创建第一个迁移,现在您可以继续工作。

对于其余的迁移,请确保不要将主键 varchar 设置为更大的长度或使用 int

谢谢

【讨论】:

    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    • 2020-07-26
    • 2016-04-15
    • 2010-11-05
    • 2011-09-03
    • 2012-05-31
    相关资源
    最近更新 更多