#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.