C ve MySQL

MySQL Connector/C

Windows İşletim Sistemi'nde MySQL Sunucu İşlemleri

MySQL Sunucu Sistemleri

Windows İşletim Sistemi'nde MySQL ile veritabanı uygulamaları geliştirmek için temel olarak 2 farklı yöntem kullanabilirsiniz:

1. Bağımsız Sunucu (Standalone Server)

Bu sistemde, geliştirdiğiniz uygulamanın herhangi bir bilgisayarda çalışması için ya aynı bilgisayarda ya da ağ üzerindeki bir bilgisayarda bağımsız olarak çalışan bir MySQL sunucuya ihtiyaç duyulur. Programınızdan önce böyle bir sunucunun kurulması ve çalıştırılması gerekir. Geliştirdiğiniz veritabanı uygulaması, MySQL Connector/C (libmysql) API komutlarını kullanarak sunucuya bağlanır ve gerekli veritabanı işlemlerini yapar.

Windows (x86, 32-bit), MSI Installer adresinde bulunan kurulum paketini kullanarak veya MySQL Community Server adresinde bulunan .zip uzantılı dosyayı bilgisayarınızda açıp gerekli ayarları yaparak bilgisayarınıza kurabilirsiniz. mysqld (mysqld.exe) programı çalıştığında bir MySQL Server devreye girer ve istemci programlardan gelecek veritabanı bağlantılarını yönetmek ve işlem yapmak üzere, ağ üzerinden gelecek bağlantıları beklemeye başlar.

Bilgisayarınıza kurulduktan sonra, sunucu diğer programlardan bağımsız olarak çalışır. İstemciler (Clients) sunucuya bağlanmak için gerekli işlemleri yaparlar.

2. Gömülü Sunucu (Embedded Server)

Bu sistemde, geliştirdiğiniz uygulama MySQL Connector/C ile aynı API komutlarını kullanan libmysqld kütüphanesini kullanarak kendi içinde bir Gömülü Sunucu (Embedded Server) oluşturur ve gerekli veritabanı işlemlerini yapar.

Bu kütüphane dosyaları MySQL Connector/C içinde mevcut olmayıp, MySQL Community Server'ın zip uzantılı dosyası içinde yer alır. Bu yazıyı hazırladığımızda, MySQL sitesinde yer alan en son sürüm MySQL Community Server 5.6.11 idi.

Bağımsız sunucudan en önemli farkı, MySQL sunucunun bilgisayar yazılımının bir parçası olarak oluşturulmasıdır. Sunucu (Server) / İstemci (Client) işlemlerine gerek yoktur. libmysqld kütüphane dosyaları uygulama içinde derlenir ve uygulamanın bir parçası olarak çalışır. Bu sistemin en önemli avantajı MySQL veritabanı sisteminin oluşturulması için ayrıca bir sunucu kurulumuna ihtiyaç duyulmamasıdır. Uygulama çalıştırıldığında sunucu ve veritabanı için gerekli sistem hazır durumdadır. Gerekli tüm veritabanı işlemleri uygulama içinden yapılabilir.

Gömülü Sunucu (Embedded Server - Libmysqld) Avantajları ve Dezavantajları

Avantajları

  • Daha içiçe ve hızlı bir sistemdir.
  • Bir uygulama içine yerleştirilebilir.
  • Uygulama kurulumu daha kolaydır.
  • Ayrı bir sunucu kurma ve çalıştırma ihtiyacı yoktur.
  • Windows işletim sisteminde bir servis olarak çalışmasına gerek yoktur.
  • Bilgisayarlarda daha düşük donanımla çalışabilir.
  • Sunucu bakım ihtiyacı yoktur.
  • Kullanıcının direk veritabanı erişimi yoktur.

Dezavantajları

  • Aynı anda sadece tek bir uygulama sunucuya bağlanabilir.
  • Bağımsız bir sunucu olmadığından daha az esneklik sağlar.
  • Sunucu kopyalama (Replication) olanağı yoktur.
  • Sunucu (Server) / İstemci (Client) bağlantısı yoktur.
  • Bağlantı güvenliği yoktur.

Gömülü Sunucu (Embedded Server - Libmysqld) Özellikleri

Avantajları

  • Daha içiçe ve hızlı bir sistemdir.
  • Bir uygulama içine yerleştirilebilir.
  • Uygulama kurulumu daha kolaydır.
  • Ayrı bir sunucu kurma ve çalıştırma ihtiyacı yoktur.
  • Windows işletim sisteminde bir servis olarak çalışmasına gerek yoktur.
  • Bilgisayarlarda daha düşük donanımla çalışabilir.
  • Sunucu bakım ihtiyacı yoktur.
  • Kullanıcının direk veritabanı erişimi yoktur.

Dezavantajları

  • Aynı anda sadece tek bir uygulama sunucuya bağlanabilir.
  • Bağımsız bir sunucu olmadığından daha az esneklik sağlar.
  • Sunucu kopyalama (Replication) olanağı yoktur.
  • Sunucu (Server) / İstemci (Client) bağlantısı yoktur.
  • Bağlantı güvenliği yoktur.

Bağımsız Sunucu ve Gömülü Sunucu Özelliklerini Karşılaştırma

Bağımsız Sunucular (Standalone Server)

  • İlişkisel veri tabanı yönetim sistemi (RDBMS)'ne dayalı ve Sunucu (Server) / İstemci (Client) prensibine göre çalışırlar.
  • Veritabanı sunucusu istemci uygulamadan tamamen ayrı olup, standart ağ sistemleri (socket veya TCP/IP) ile iletişim kurarlar.
  • Sunucu ve istemci aynı veya farklı bilgisayarlarda çalışabilir.
  • Kullanıcılar MySQL sunucu paketi ile dağıtımı yapılan ve MySQL Community Server kurma işleminden sonra bin dizini altında yer alan .exe uzantılı dosyaları veya farklı programlama dilleri ile yazılan programların MySQL Sunucu işlemlerini gerçekleştirebilmesi için oluşturulmuş MySQL Connector'ları kullanarak çalışmakta olan bir MySQL Sunucu'ya erişebilir ve veritabanı ile ilgili işlemler yapabilir.
  • MySQL Sunucu ağ üzerindeki bir bilgisayarda çalışır. İstemciler MySQL protokolünü kullanarak sunucu ile iletişim kurar.
  • Birde fazla istemci aynı sunucu ile işlem yapabilir.

Gömülü Sunucu (Embedded Server - Libmysqld)

  • Libmysqld kütüphane dosyaları uygulama ile entegre olarak çalışan bir veritabanı katmanı olarak çalışır.
  • Veritabanı ve uygulama aynı .exe dosya içinde çalışır.
  • MySQL ile ilgili işlemler aynı .exe içinde yapıldığından sunucu bağlantısı gibi bir işleme gerek duyulmaz.
  • Arayüz ve ve uygulanma yöntemleri farklı olsa da kullanılan API Sunucu (Server) / İstemci (Client) sisteminde kullanılanların aynısıdır.
  • Uygulamanın kendisi sunucudur.
  • Çalışan tek bir program vardır.
  • Veri programın çalıştığı bilgisayardaki yerel diske kaydedilir.
  • Tek bir istemci çalışabilir.