Veritabanı

MySQL Kurulumu ve İlk Veritabanı

MySQL Kurulumu ve İlk Veritabanı

Modern web uygulamalarının, kurumsal yazılımların ve veri odaklı altyapıların merkezinde güvenilir bir veritabanı yönetim sistemi yer alır. İlişkisel veritabanı yönetim sistemleri (RDBMS) arasında en yaygın kullanılan çözümlerden biri olan MySQL; yapılandırılmış sorgulama dili (SQL) desteği, kararlılığı ve yaygın topluluk desteği ile öne çıkar. Yazılım geliştirme ve sistem yönetimi süreçlerinde sağlam bir zemin oluşturmak için MySQL kurulum adımlarını eksiksiz bilmek ve temel güvenlik önlemlerini baştan almak büyük önem taşır.

Ubuntu Üzerinde MySQL Kurulum Adımları

MySQL sunucusunu Linux tabanlı sistemlerde çalıştırmak, kurumsal ortamlarda en sık tercih edilen yaklaşımdır. Debian veya Ubuntu dağıtımlarında kurulum işlemi resmi paket yöneticisi olan APT üzerinden kolayca gerçekleştirilebilir.

İlk adım olarak yerel paket indeksinin güncellenmesi gerekir. Bu işlem, paket yöneticisinin en güncel sürüm listelerine ulaşmasını sağlar:

sudo apt update

Güncelleme tamamlandıktan sonra MySQL sunucu paketini indirmek ve sisteme kurmak için aşağıdaki komut çalıştırılır:

sudo apt install mysql-server -y

Kurulum tamamlandığında MySQL servisi genellikle arka planda otomatik olarak başlatılır. Servisin çalışır durumda olduğunu ve sistem başlangıcına eklendiğini teyit etmek için systemctl komutu kullanılır:

sudo systemctl status mysql

Çıktıda yeşil renkli “active (running)” ifadesinin görülmesi, MySQL veritabanı altyapısının yerel soket üzerinden istekleri kabul etmeye hazır olduğunu gösterir.

Güvenli Kurulum Yapılandırması

MySQL varsayılan kurulumu ile birlikte bazı test veritabanları ve yetkilendirilmemiş bağlantılara izin verebilecek açık ayarlar gelir. Siber güvenlik perspektifinden bakıldığında, üretim veya geliştirme ortamı fark etmeksizin bu varsayılan ayarların hemen sıkılaştırılması şarttır.

MySQL, bu süreci otomatikleştiren güvenli kurulum betiğini bünyesinde barındırır. Betiği başlatmak için şu komut girilir:

sudo mysql_secure_installation

Bu komut çalıştırıldığında etkileşimli bir dizi soru ekrana gelir:

  • Parola Doğrulama Eklentisi: Parola karmaşıklığını denetleyen bu eklentiyi etkinleştirmek, zayıf parolaların belirlenmesini engeller.
  • Root Parolası: MySQL ana yöneticisi (root kullanıcısı) için karmaşık bir şifre belirlenmesi istenir.
  • Anonim Kullanıcıların Kaldırılması: Herhangi bir kullanıcı adı olmadan sisteme giriş yapılmasını sağlayan hesapların silinmesi onaylanmalıdır.
  • Uzaktan Root Girişinin Engellenmesi: Root kullanıcısının yalnızca yerel makineden (localhost) bağlanabilmesi sağlanmalı, dış ağlara erişim kapatılmalıdır.
  • Test Veritabanının Silinmesi: Herkesin erişimine açık olan varsayılan “test” şeması kaldırılmalıdır.
  • Yetki Tablolarının Yeniden Yüklenmesi: Yapılan tüm değişikliklerin belleğe hemen uygulanması için bu adım onaylanmalıdır.

MySQL Sunucusuna Bağlantı ve Kullanıcı Yönetimi

Güvenlik adımları tamamlandıktan sonra MySQL komut satırı arayüzüne (CLI) erişim sağlanabilir. Ubuntu üzerinde root kullanıcısı varsayılan olarak auth_socket eklentisini kullandığından, sistem yetkisiyle doğrudan bağlanmak mümkündür:

sudo mysql

Uygulamaların veya projelerin doğrudan root hesabı ile veritabanına bağlanması güvenlik açısından tehlikeli bir hatadır. Her proje için ayrı bir veritabanı ve yalnızca ilgili veritabanında işlem yapabilen kısıtlı bir kullanıcı tanımlanmalıdır.

Yeni bir kullanıcı oluşturmak için MySQL konsolunda şu SQL ifadesi çalıştırılır:

CREATE USER 'proje_kullanicisi'@'localhost' IDENTIFIED BY 'GucluParola_123*';

Bu komutta proje_kullanicisi oluşturulan yeni hesabı temsil ederken, @'localhost' ifadesi bu kullanıcının yalnızca sunucunun çalıştığı makineden oturum açabileceğini belirtir.

İlk Veritabanını Oluşturma ve Yetki Atama

Yeni kullanıcı tanımlandıktan sonra verilerin depolanacağı asıl şema (database) oluşturulmalıdır. Karakter kodlamasının UTF-8 olarak ayarlanması, ileride Türkçe karakter veya farklı dil setlerinde sorun yaşanmaması adına kritik bir kuraldır.

Veritabanı oluşturma komutu:

CREATE DATABASE sirket_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Oluşturulan bu veritabanının tam denetimini daha önce tanımladığımız kullanıcıya vermek gerekir. Bu işlem GRANT ifadesi ile gerçekleştirilir:

GRANT ALL PRIVILEGES ON sirket_db.* TO 'proje_kullanicisi'@'localhost';

Değişikliklerin MySQL yetki tablolarına anında yansıması için yetkilerin yenilenmesi gerekir:

FLUSH PRIVILEGES;

Bu aşamada root oturumundan çıkmak için exit; komutu kullanılabilir.

İlk Tabloyu Tanımlama ve Veri Ekleme

Yeni oluşturulan kullanıcı hesabı ile MySQL sunucusuna bağlanarak izinlerin çalıştığı doğrulanmalıdır:

mysql -u proje_kullanicisi -p sirket_db

Parola girildikten sonra doğrudan sirket_db veritabanı oturumu açılır. İlişkisel veritabanlarında veriler sütunları ve tipleri önceden belirlenmiş tablolarda tutulur. Örnek bir kullanıcılar tablosu oluşturmak için şu komut girilir:

CREATE TABLE kullanicilar (
    id INT AUTO_INCREMENT PRIMARY KEY,
    ad_soyad VARCHAR(100) NOT NULL,
    eposta VARCHAR(100) UNIQUE NOT NULL,
    kayit_tarihi TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Bu yapı; her satıra benzersiz bir kimlik (id), zorunlu bir ad-soyad alanı (ad_soyad), tekrar edemez bir e-posta adresi (eposta) ve eklenme anını otomatik yakalayan bir zaman damgası (kayit_tarihi) tanımlar.

Tabloya ilk veriyi eklemek için INSERT komutu kullanılır:

INSERT INTO kullanicilar (ad_soyad, eposta) VALUES ('Ahmet Yılmaz', 'ahmet@example.com');

Eklenen verileri okumak ve tablo içeriğini listelemek için SELECT sorgusu çalıştırılır:

SELECT * FROM kullanicilar;

Terminal ekranında oluşturulan satırın id numarası, adı, benzersiz e-posta adresi ve otomatik atanmış kayıt zamanı listelenir.

Özet ve Sonraki Adımlar

Bu rehberde sıfırdan bir Linux sistemi üzerinde MySQL kurulum adımlarını tamamladık, sistem güvenliğini temel düzeyde yapılandırdık, kısıtlı yetkilere sahip yeni bir veritabanı kullanıcısı tanımladık ve ilk SQL tablomuzu oluşturup veri kaydettik. Bir sonraki aşamada veritabanı yedekleme süreçlerini (mysqldump), karmaşık sorgular için indeksleme stratejilerini ve dış ağlardan güvenli erişim için SSL/TLS yapılandırmalarını inceleyebilirsiniz.

#linux#mysql#mysql kurulumu#sql#veritabanı

Yorumlar

Henüz yorum yok. İlk yorumu siz yazın.

Yorum yaz

Yorumlar yönetici onayından sonra yayınlanır.