实体框架代码优先,mysql服务器无法运行迁移

nwo49xxi  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(317)

我为迁移设置了两个配置,一个是sql server,另一个是mysql。sql server迁移现在未被使用。现在,我的问题是在执行sql server迁移时 Update-Database -ConfigurationTypeName InTouchEnterprise.Data.Repository.MySqlMigrations.Configuration -verbose . 它给了我以下的错误
使用“mysql\u native\u password”方法对用户“test”的主机“localhost”进行身份验证失败,消息为:拒绝访问用户“test”@“localhost”(使用密码:否)
但是如果我运行这个项目,它就会成功地连接到数据库,并正确地使用数据库执行所有操作。现在我不知道哪里出了问题。
根据错误消息,它说我没有指定密码,但我已经在web.config中指定了密码。下面是我的连接字符串。

<add name="IdentityDB" providerName="MySql.Data.MySqlClient"
connectionString="server=localhost;port=3306;database=rtd;uid=test;password=*******" />

下面是配置类的代码:

internal sealed class Configuration : DbMigrationsConfiguration<InTouchEnterprise.Data.Repository.InTouchEnterpriseDbContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = false;
        MigrationsDirectory = @"MySqlMigrations";

        //for mysql
        SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());
    }

    protected override void Seed(InTouchEnterprise.Data.Repository.InTouchEnterpriseDbContext context)
    {
    }
}
i7uq4tfw

i7uq4tfw1#

我不知道确切的问题,但当我在web.config的连接字符串中添加persist security info为true时,它又开始工作了。这是我更新的连接字符串。

<add name="IdentityDB" providerName="MySql.Data.MySqlClient" 
connectionString="server=localhost;port=3306;database=rtd;uid=root;password=*****;persistsecurityinfo=True" />

相关问题