» » » Подключение к удалённой Mysql с помощью C#
Опрос
Вы занимаетесь разработкой сайтов?
Выделенные и виртуальные серверы в Европе

Подключение к удалённой Mysql с помощью C#

Автор: administrator Дата: 20-08-2015, 23:46 Категория: Статьи и уроки / C# статьи

Как удаленно подключиться к базе данных, размещенной на нашем хостинге?!


Сегодня мы попробуем создать небольшое приложение WindowsForms на языке C# и подключиться к нашей базе данных (БД) MySQL на удалённом сервере хостинга. Чтобы наше приложение могло подключаться удалённо, для начала нам нужно разрешить удалённый доступ по IP адресу.

Настройка доступа


- Для настройки подключения к MySQL извне необходимо зайти в Панель управления и перейти в раздел «Базы данных MySQL».
- Нажмите кнопку «Доступ по IP» → «Добавить IP» и укажите IP-адрес, с которым вы выходите в сеть. Узнать свой IP-адрес можно на сайте inet.from.sh
- Также в форме можно указывать IP-адреса с символом % в октетах. Например, для разграничения доступа с IP-адресов одной подсети:
192.168.1.%

Пример настройки доступа по IP-адресу в панели ISP manager:


Если всё настроено, то мы можем приступать к написанию нашего приложения.

Создадим наше приложение: «Файл» → «Создать» → «Проект» → «Приложение Windows Forms» и нажмём "ОК".




Для работы с MySQL нам необходимо подключить ссылку MySql.Data и в исходном коде добавить пространство имён MySql.Data.MySqlClient

- В обозревателе решений жмём правой кнопкой мыши в разделе «Ссылки» → «Добавить ссылку»

- В открывшемся окне переходим в раздел «.NET», находим и выделяем компонент «MySql.Data» и нажимаем "ОК"


- Далее в исходном коде нашей формы добавляем пространство имён
using MySql.Data.MySqlClient;


Небольшое отступление


При переустановки системы столкнулся с такой проблемой, как отсутствие MySql.Data. Проблема эта решилась после установки официального коннектора для работы с базами данных MySql на платформе .NET.
Переходим по ссылке и скачиваем наш коннектор.

Подготовительная часть завершена, теперь приступим к написанию нашего кода подключения.

Для проверки подключения нам необходимо добавить на нашу форму кнопочку. Переходим в конструктор нашей формы и из панели элементов перетаскиваем нашу кнопочку на форму


Двойной щелчёк мыши по созданной нами кнопке создаёт событие нажатия на кнопку и переводит нас в исходный код нашей формы.

Событие нашей кнопки:

private void button1_Click(object sender, EventArgs e)
{

}


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

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

string myConnectionString = "Database=DBNAME;Data Source=IPADRESS;User Id=DBUSER;Password=DBPASSWORD";

Где:
DBNAME - это имя базы данных Вашей MySql;
IPADRESS - IP адрес Вашей базы (обычно совпадает с IP адресом сайта);
DBUSER - Имя пользователя базы данных;
DBPASSWORD - Пароль пользователя БД.

Способ второй

MySqlConnectionStringBuilder mysqlCSB = new MySqlConnectionStringBuilder();
mysqlCSB.Server = "192.168.0.1";  // IP адоес БД
mysqlCSB.Database = "test_db";    // Имя БД
mysqlCSB.UserID = "root";        // Имя пользователя БД
mysqlCSB.Password = "rootpass";   // Пароль пользователя БД
mysqlCSB.CharacterSet = "cp1251"; // Кодировка Базы Данных


Какой способ подключения использовать Вам решайте сами, а мы для примера воспользуемся первым способом.
Не буду дальше расписывать весь код, а просто приведу пример подключения к БД

private void button1_Click(object sender, EventArgs e)
{
    string myConnectionString = "Database=db_name;Data Source=192.168.0.1;User Id=root;Password=rootpass";
    MySqlConnection myConnection = new MySqlConnection(myConnectionString);
    try
    {
        myConnection.Open(); // Открываем соединение
        // --- код запроса и т.п. --- //
        MessageBox.Show("Подключение прошло успешно!");
        myConnection.Close(); // Закрываем соединение
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Ошибка");
    }
}


В предоставленном ниже проекте реализованы оба способа подключения и небольшой пример запроса к БД, и вывод данных в DataGridView, который также можно найти в "Панеле элементов" и перетащить его на форму.

Исходный код: Скачать файл: windowsformsmysql.zip [29,37 Kb] (cкачиваний: 55)

P.S. - файл MySql.Data.dll также можно скачать с нашего сайта и подключить его непосредственно к приложению, чтобы в дальнейшем не возникало проблем с отсутствием нужных библиотек.
Скачать библиотеку: Скачать файл: mysql.data.zip [121,48 Kb] (cкачиваний: 12)

Новость отредактировал administrator - 3-09-2018, 15:25
Причина: Столкнулся с проблемой отсутствия стандартной библиотеки после переустановки системы
  • +1
Просмотров: 12 835 Напечатать Жалоба
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
Комментарии (2)
  1. Maxin | Гости     24 ноября 2019 20:41    Комментариев: 0 
    сделал, как написано. но подключения все равно нет. точно ничего не упущено?
    Ответить
    • 0
    1. administrator | Администраторы     29 ноября 2019 18:57    Комментариев: 2 
      Что конкретно Вы сделали? Возможно Вы в удалённой базе данных не установили разрешение на удалённый доступ, возможно в программе не указали IP адрес своего сервера, либо указали стандартный IP 192.168.0.1
      Ответить
      • 0
Написать комментарий
Ваше Имя:
Ваш E-Mail:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent

Введите два слова, показанных на изображении: