Сначала код Entity Framework с сервером MySql, который не может запустить миграцию - PullRequest
0 голосов
/ 15 мая 2018

У меня есть две конфигурации для миграции, одна для сервера SQL, а другая для MySql.Миграция SQL Server в настоящее время не используется.Теперь моя проблема - когда я выполняю миграцию Sql Server с Update-Database -ConfigurationTypeName InTouchEnterprise.Data.Repository.MySqlMigrations.Configuration -verbose.Это дает мне следующую ошибку

Аутентификация на хосте «localhost» для пользователя «test» с использованием метода «mysql_native_password» завершилась ошибкой с сообщением: Доступ запрещен для пользователя «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)
    {
    }
}

1 Ответ

0 голосов
/ 15 мая 2018

Я не знаю точной проблемы, но когда я добавил постоянную информацию о безопасности в строке подключения в web.config к значению true, она снова заработала. Вот моя обновленная строка подключения.

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