# Ubuntu 20.04’e MySQL Kurulumu: Hızlı Başlangıç Rehberi
Veri yönetimi, günümüzün dijital dünyasında hayati önem taşıyor. Bir web uygulaması, e-ticaret platformu veya basit bir veritabanı yönetim sistemine ihtiyaç duyan herhangi bir proje için güvenilir ve performanslı bir veritabanı çözümü olmazsa olmazdır. Bu rehberde, Ubuntu 20.04 işletim sisteminize MySQL’i nasıl hızlı ve güvenli bir şekilde kuracağınızı, performansını nasıl optimize edeceğinizi ve olası sorunlarla nasıl başa çıkacağınızı adım adım öğreneceksiniz. Veri güvenliğinizi sağlamak ve uygulamalarınızın verimli çalışmasını garanti altına almak için bu rehberi dikkatlice inceleyin.
MySQL Nedir ve Neden Kullanmalıyım?
MySQL, açık kaynak kodlu, ilişkisel bir veritabanı yönetim sistemidir (RDBMS). Verileri tablolar halinde düzenleyerek, veri bütünlüğünü ve tutarlılığını sağlayan bir yapı sunar. Web uygulamalarından büyük ölçekli kurumsal sistemlere kadar geniş bir yelpazede kullanılır. Popülaritesi, performansı, güvenilirliği ve geniş topluluk desteği sayesindedir. MySQL’i tercih etmeniz için birkaç neden:
* Açık kaynak: Ücretsiz ve özgürce kullanılabilir, geliştirilebilir ve dağıtılabilir.
* Platform bağımsızlığı: Çeşitli işletim sistemlerinde çalışabilir.
* Güvenilirlik: Yüksek performans ve veri bütünlüğü sağlar.
* Geniş topluluk desteği: Sorunlarla karşılaştığınızda geniş bir topluluktan destek alabilirsiniz.
* Ölçeklenebilirlik: Küçük projelerden büyük ölçekli uygulamalara kadar ölçeklenebilir.
Ubuntu 20.04’e MySQL’i Kurmak: Adım Adım Kılavuz (Yeni Başlayan)
Bu bölümde, Ubuntu 20.04’e MySQL’i kurmanın en temel adımlarını ele alacağız. Yeni başlayanlar için adım adım bir kılavuz sunuyoruz.
1. Paket Yöneticisini Güncellemek: Sisteminizin en son paket listelerine sahip olduğundan emin olmak için öncelikle paket yöneticisini güncellemeniz gerekir:
sudo apt update
2. MySQL Server’ı Kurmak: Aşağıdaki komutla MySQL sunucusunu kurabilirsiniz:
sudo apt install mysql-server
Bu işlem, MySQL sunucusunun yanı sıra gerekli bağımlılıkları da kuracaktır. Kurulum sırasında root şifrenizi girmeniz istenecektir. Güçlü ve güvenli bir şifre seçmeyi unutmayın!
3. MySQL Servisini Başlatmak: Kurulum tamamlandıktan sonra, MySQL servisini başlatmak için şu komutu kullanın:
sudo systemctl start mysql
4. MySQL Servisinin Durumunu Kontrol Etmek: Servisin doğru bir şekilde çalıştığını doğrulamak için:
sudo systemctl status mysql
5. Basit Bir Tablo Oluşturmak (Örnek): MySQL’e bağlanıp basit bir tablo oluşturabilirsiniz:
mysql -u root -p
CREATE DATABASE deneme;
USE deneme;
CREATE TABLE kullanicilar (
id INT AUTO_INCREMENT PRIMARY KEY,
ad VARCHAR(255),
soyad VARCHAR(255)
);
Bu kod bloğu, deneme adında bir veritabanı oluşturur ve bu veritabanı içinde kullanicilar adında bir tablo tanımlar. id, ad ve soyad sütunlarını içeren bu tablo, kullanıcı bilgilerini saklamak için kullanılabilir. AUTO_INCREMENT özelliği, id sütununa otomatik olarak artan bir değer atamasını sağlar.
MySQL Güvenliğini Artırma: Orta Seviye
Yeni kurulan bir MySQL sunucusunun güvenliğini artırmak hayati önem taşır. Bu bölümde, güvenlik açısından kritik adımları ele alacağız.
1. Güvenlik Betiğini Çalıştırmak: MySQL kurulumundan sonra, sunucunuzun güvenliğini sağlamak için otomatik bir güvenlik betiği çalıştırmanız önerilir. Bu betik, anonim kullanıcıları kaldırır, uzaktan root erişimini devre dışı bırakır ve test veritabanını siler:
sudo mysql_secure_installation
Betik size çeşitli sorular soracaktır. Yönergeleri dikkatlice takip edin ve güvenli bir yapılandırma oluşturun.
2. Güçlü Şifre Kullanımı: Hem root kullanıcısı hem de diğer kullanıcılar için güçlü ve tahmin edilmesi zor şifreler kullanın. Şifre yöneticisi kullanmanız şiddetle tavsiye edilir.
3. Firewall Kuralları: Firewall’ınızı yapılandırarak sadece belirli bağlantılara izin verin. MySQL’in sadece belirli IP adreslerinden erişilebilir olmasını sağlamak güvenlik açısından önemlidir. ufw (Uncomplicated Firewall) kullanarak bunu yapabilirsiniz. Örneğin, sadece yerel makinenizden erişime izin vermek için:
sudo ufw allow 3306/tcp
Gerçek Dünya Senaryosu: E-Ticaret Uygulaması İçin MySQL Optimizasyonu (Orta Seviye)
Bir e-ticaret uygulaması düşünün. Milyonlarca ürün, kullanıcı ve sipariş bilgisi içeren büyük bir veritabanı yönetiyorsunuz. Performans kritik önem taşıyor. İşte bazı optimizasyon ipuçları:
* İndeksleme: Sıkça sorgulanan sütunlara indeks eklemek, sorgu performansını önemli ölçüde artırabilir.
* Veritabanı Normalizasyonu: Veri tekrarını azaltmak ve veri bütünlüğünü sağlamak için veritabanınızı normalleştirin.
* Sorgu Optimizasyonu: Verimsiz sorguları tespit edip optimize edin. EXPLAIN komutunu kullanarak sorguların nasıl çalıştığını inceleyebilirsiniz.
* Önbellekleme: Sık erişilen verileri önbelleğe alarak veritabanı yükünü azaltabilirsiniz.
* Read Replicas: Yüksek okuma yükü olan uygulamalarda, okuma işlemlerini ana sunucudan ayırmak için read replicas kullanabilirsiniz.
Performans Analizi ve Sorun Giderme: İleri Düzey
MySQL performansını izlemek ve sorunları gidermek için çeşitli araçlar ve teknikler kullanabilirsiniz.
* slow_query_log: Yavaş çalışan sorguları kaydetmek ve analiz etmek için slow_query_log özelliğini etkinleştirin.
* mysqltuner.pl: MySQL sunucunuzun performansını analiz etmek ve optimizasyon önerileri almak için mysqltuner.pl betiğini kullanabilirsiniz.
* Percona Monitoring and Management (PMM): Kapsamlı bir MySQL izleme ve yönetim aracıdır.
* Profil Oluşturma: Belirli sorguların performansını ayrıntılı olarak analiz etmek için profil oluşturma özelliğini kullanabilirsiniz.
Örneğin, yavaş bir sorguyu tespit ettiğinizde, EXPLAIN komutunu kullanarak sorgu planını inceleyebilir ve indeksleme veya sorgu optimizasyonu gibi iyileştirmeler yapabilirsiniz. Veri tiplerini doğru seçmek de performansı etkiler. Çok büyük metinler için TEXT yerine MEDIUMTEXT veya LONGTEXT kullanmak daha verimli olabilir.
MySQL’i Güncelleme ve Yükseltme: İleri Düzey
MySQL’in yeni sürümlerini zaman zaman yüklemeniz güvenlik yamaları ve yeni özellikler elde etmeniz açısından önemlidir. Bunun için öncelikle mevcut MySQL sürümünü kontrol edin:
mysql --version
Sonrasında, paket yöneticisi aracılığıyla güncellemeyi yapın:
sudo apt update
sudo apt upgrade mysql-server
Yükseltme işlemi sırasında dikkatli olun ve yedekleme yapmayı unutmayın. Yükseltme sonrasında, servis durumunu kontrol edin ve beklenmedik sorunlar için kontrol edin.
Sıkça Sorulan Sorular (SSS)
* MySQL root şifremi unuttum, ne yapmalıyım? MySQL sunucusunu güvenli modda başlatıp şifreyi sıfırlamanız gerekir. Bu işlem için internette detaylı rehberler bulabilirsiniz. fatihsoysal.com gibi kaynakları inceleyebilirsiniz. (Buraya ilgili bir makale bağlantısı eklenecekti, ancak henüz böyle bir makale yok.)
* MySQL hangi portu kullanıyor? Varsayılan olarak 3306 numaralı portu kullanır.
* MySQL’i tamamen nasıl kaldırabilirim? sudo apt-get purge mysql-server komutu ile MySQL sunucusunu tamamen kaldırabilirsiniz.
* MySQL’de veritabanı yedeklemesi nasıl yapılır? mysqldump komutu ile veritabanınızı yedekleyebilirsiniz.
* MySQL performansını nasıl izleyebilirim? slow_query_log, mysqltuner.pl ve Percona Monitoring and Management (PMM) gibi araçlar kullanabilirsiniz.
Sonuç:
Bu rehberde, Ubuntu 20.04’e MySQL kurulumunu, güvenliğini sağlamayı, performansını optimize etmeyi ve olası sorunları gidermeyi kapsamlı bir şekilde ele aldık. Veri yönetiminde güvenilirlik ve performansın önemini vurgulayarak, adım adım bir kılavuz sunmayı hedefledik. Uygulama örnekleri ve ileri düzey tekniklerle, farklı seviyelerdeki kullanıcılara yardımcı olmayı amaçladık. Unutmayın ki, veri güvenliği ve performans optimizasyonu sürekli bir süreçtir. Düzenli bakım ve izleme, veritabanınızın sağlıklı ve verimli çalışmasını sağlayacaktır.
Yazar: Fatih Soysal
