Преобразование учетных данных для входа в Putty в строку подключения C# MySqlConnection

У меня возникли проблемы с подключением к моей базе данных SQL через мой код С#. Я могу нормально подключиться к нему с помощью Putty, а сервер, к которому я подключаюсь, находится в Германии, я здесь, в Великобритании.

Когда я использую Putty, я использую эти учетные данные:

 Host Name:
 sample-intra.net

 Port:
 2223

А затем, чтобы войти в систему, используя открывшееся окно, я набираю

 login as: my_username
 password: my_password

затем, как только доступ был предоставлен, я набираю:

 mysql -h localhost -u root -p

а потом при запросе пароля ввожу

 my_password

снова.

Это работает нормально, и я могу получить доступ к своей базе данных (называемой SampleDB) и получить доступ ко всем таблицам, но у меня возникают проблемы с преобразованием этого в строку подключения C#, которую я могу использовать с объектом SqlConnection. Если кто-то может предоставить мне строку подключения на основе вышеуказанных учетных данных, я был бы очень признателен.

Большое спасибо


person Darius    schedule 12.07.2011    source источник


Ответы (1)


Поскольку вы сначала подключаетесь с помощью PuTTY к SSH на свой сервер, а затем запускаете mysql команды при подключении, вы как будто физически сидите за консолью сервера. Другими словами, вы подключились к своему экземпляру mysql, используя адрес «localhost», потому что вы действительно уже находитесь на этой машине.

Есть две вещи, которые вы можете сделать здесь, чтобы обойти вашу проблему:

  1. Создайте туннель SSH в PuTTY и через него подключитесь к своему экземпляру MySQL.
  2. Включите удаленный доступ в Сервер MySQL для соединений с IP-адреса вашего настольного компьютера.

Первый вариант более безопасный.

person Mike Atlas    schedule 12.07.2011
comment
Спасибо за Ваш ответ. Мне был предложен подход к туннелю SSH, но я не совсем понял, как использовать его в моем коде C#? - person Darius; 12.07.2011
comment
@Greenhouse - это отдельно от вашего кода С#. Это то, что вы настроили на сервере. - person Joel Coehoorn; 12.07.2011
comment
@Greenhouse - как только ваш туннель SSH настроен в коде С#, вы будете подключаться к локальному хосту вместо своего фактического адреса. Порт будет любым портом, который вы настроили в своем туннеле ssh (вероятно, таким же, как удаленный порт, или один из них, если у вас уже запущена локальная служба — просто соглашение) - person Chris B; 12.07.2011
comment
Извините за нуб, не было большого опыта в этой области! По сути, теперь у меня открыт Putty, я пошел в SSH › Туннели › Для исходного порта я поставил 0, а для пункта назначения я поставил «localhost: 2223» (2223 — это порт, к которому мне сказал подключиться парень, который настроил сервер для меня). Я открываю это и вхожу в систему с моим именем пользователя и паролем. Я оставил его открытым и использовал строку подключения Server=localhost;Database=my_db_name;User ID=root;Password=my_password; (очевидно, с моим фактическим паролем и именем базы данных), но все равно нет радости? Даже если я укажу номер порта server=localhost,0, это не сработает... - person Darius; 12.07.2011
comment
Вместо этого я забыл о Putty и воспользовался блестящим проектом SharpSSH от Tamir Gal. Я немного подправил его под свои нужды, но он работает намного лучше, чем библиотека MSDN SqlConnection. Спасибо за вашу помощь. - person Darius; 13.07.2011