Как настроить сетевой соединитель MySQL с помощью SSH (наличие рабочего соединения в MySQL Workbench)

#c# #mysql #mysql-workbench #mysqlconnection

#c# #mysql #mysql-workbench #подключение к базе данных

Вопрос:

РЕДАКТИРОВАТЬ: решение найдено — подробности будут найдены ниже.

У меня есть настроенное соединение в MySQL Workbench, которое работает нормально, но когда я пытаюсь подключиться с помощью C # в Visual Studio, соединение достигает тайм-аута. Я увеличил его (просто чтобы убедиться, что это не так), но безуспешно.

Следуя документации, я использовал такой код для тестирования:

         var builder = new MySqlConnectionStringBuilder();
        builder.UserID = userName;
        builder.Password = password;
        builder.Server = ipAddress;
        builder.SshHostName = sshIpAddress;
        builder.SshUserName = sshUserName;
        builder.SshPassword = sshPassword;
        builder.PersistSecurityInfo = true;
        builder.ConnectionTimeout = 60;
        builder.UseCompression = true;
        using (var connection = new MySqlConnection(builder.ConnectionString))
        {
            connection.Open();
            connection.Close();
        }
  

Чего мне не хватает? Я проверил другую базу данных, для которой не требуется SSH, и она работает нормально, поэтому я уверен, что поставщик в порядке. На самом деле (с одного из скриншотов) Я не знал, как перевести «использовать протокол сжатия» и «уровень сжатия ssh = 0» в код C #. Может ли это быть gamechanger?

Вот снимки того, как настроен workbench:

Основные настройки сервера (оранжевые линии указывают предоставленные данные)

Вкладка «Дополнительно» -> «Использовать протокол сжатия» и «Уровень сжатия SSH» являются сложными

Вкладка «Удаленное управление» — я не знаю, подходит ли это для моего случая

РЕДАКТИРОВАТЬ: Проблема была решена с помощью PuTTY и настройки SSH IP для туннеля и DB IP для предполагаемого соединения. Тогда внутри Visual Studio я мог бы использовать MySqlConnection. Очевидная разница заключалась в том, что теперь мне приходилось указывать ‘localhost’ в качестве IP-адреса сервера БД и использовать его без SSH, поэтому требовались только имя пользователя и пароль для БД.

Комментарии:

1. Попробуйте обновить сетевой драйвер: dev.mysql.com/downloads/connector/net . Последняя ссылка, выбран ли у вас SSH?

2. Я получил последнюю стабильную версию от NuGet, загруженную сегодня. В последней ссылке я выбрал «Не использовать удаленное управление», и это работает таким образом в Workbench.

3. Вы должны проверить строки подключения, чтобы увидеть, какой драйвер использует Workbench, и c # (builder. Используется ConnectionString). Я не знаю, какой драйвер использует MySqlConnectionStringBuilder.