MySQL FLUSH Komutları

Hosting dünyasında, MySQL, dinamik web siteleri, e-ticaret mağazaları, içerik yönetim sistemleri (CMS) ve SaaS platformlarını desteklemek için en kritik bileşenlerden biri olmaya devam ediyor. İster bir paylaşımlı hosting kümesi, bir VPS altyapısı veya kurumsal müşteriler için dedike sunucular yönetiyor olun, MySQL’in iç işlemleri üzerinde kontrol sahibi olmak esastır.

Sıklıkla gözden kaçan ancak güçlü bir araç, FLUSH komutudur — ayrıcalıkları yeniden yüklemenizi, günlükleri temizlemenizi, durumları sıfırlamanızı ve sunucuyu yeniden başlatmadan tutarlılığı sağlamanızı sağlayan bir dizi yönetim SQL ifadesidir.

MySQL’de FLUSH Nedir?

FLUSH ifadesi şunlar için kullanılır:

  • İçsel önbellekleri temizlemek

  • Yapılandırma dosyalarını yeniden yüklemek (örneğin, ayrıcalık tabloları)

  • Durum bilgilerini sıfırlamak

  • MySQL’in tamponlanmış verileri diske yazmasını zorlamak

Sadece RELOAD ayrıcalığına (veya daha yüksek, örneğin SUPER) sahip kullanıcılar çoğu FLUSH işlemini gerçekleştirebilir.

Yaygın FLUSH Komutları

1. 🔐 FLUSH PRIVILEGES

MySQL veritabanındaki grant tablolarından kullanıcı ayrıcalıklarını yeniden yükler:

FLUSH PRIVILEGES;

Ne zaman kullanılmalı:

  • mysql.user veya diğer grant tablolarını manuel olarak düzenledikten sonra.

  • Kullanıcı erişimini doğrudan UPDATE ifadeleri ile GRANT yerine değiştirdiğinizde.

2.  FLUSH TABLES

Tüm açık tabloları kapatır ve yeniden açılmalarını zorlar. Dosya sistemi bakımı veya yedeklemeleri için faydalıdır.

FLUSH TABLES;

Ayrıca belirli tabloları da flush edebilirsiniz:

FLUSH TABLES table_name [, table_name] ...;

Ne zaman kullanılmalı:

  • Dış araçlarla yedekleme yapmadan önce (örneğin, mysqldump –single-transaction).

  • Tablo önbelleğini aşırı yükleyebilecek büyük ölçekli yazımlardan sonra.

3.  FLUSH QUERY CACHE

Sorgu önbelleğinden tüm sorgu sonuçlarını kaldırır (eğer etkinse):

FLUSH QUERY CACHE;

Not: Sorgu önbelleği MySQL 8.0’da kullanım dışı bırakılmış ve kaldırılmıştır.

4.  FLUSH LOGS

Tüm günlük dosyalarını (genel günlük, hata günlük, ikili günlük, relay günlük) kapatır ve yeniden açar.

FLUSH LOGS;

Veya belirli bir türü flush edebilirsiniz:

FLUSH BINARY LOGS;
FLUSH ERROR LOGS;
FLUSH ENGINE LOGS;
FLUSH SLOW LOGS;

Ne zaman kullanılmalı:

  • Günlük döngüsünden sonra

  • Günlükler taşındığında veya arşivlendiğinde

  • Hata ayıklama veya uyum için günlükleri sıfırlamak amacıyla

5. FLUSH HOSTS

Başarısız istemci bağlantılarının ana bilgisayar önbelleğini sıfırlar.

FLUSH HOSTS;

Ne zaman kullanılmalı:

  • Aşağıdaki hatayı aldığınızda:
    Host 'xxx' is blocked because of many connection errors

6. FLUSH STATUS

Çoğu durum değişkenini sıfıra döndürür (global sayaçları etkilemez, örneğin Uptime).

FLUSH STATUS;

Ne zaman kullanılmalı:

  • Karşılaştırma veya performans testi yapmadan önce.

  • Temiz metrikler elde etmek için SHOW STATUS ile.

7. FLUSH TABLES WITH READ LOCK

Tüm tabloları flush eder ve kilitler, diğer oturumların yazmasını engeller.

FLUSH TABLES WITH READ LOCK;

Ne zaman kullanılmalı:

  • Tutarlı anlık yedeklemeler için (örneğin, LVM veya dosya kopyalama araçları ile).

  • Önemli: Her zaman UNLOCK TABLES; ile manuel olarak kilidi açın

8. FLUSH DES_KEY_FILE

Eski DES_ENCRYPT()/DES_DECRYPT() (miras) için kullanılan DES anahtar dosyalarını yeniden yükler.

FLUSH DES_KEY_FILE;

9.  FLUSH USER_RESOURCES

Kullanıcı başına kaynak limitlerini (örneğin, MAX_QUERIES_PER_HOUR) sıfırlar.

FLUSH USER_RESOURCES;

Ne zaman kullanılmalı:

  • Kaynak sınırlı kullanıcılar için döngü ortası sıfırlama.

Kullanım Dışı Bırakılan/Kaldırılan Komutlar

  • FLUSH QUERY CACHE, MySQL 8.0’da kaldırılmıştır.

  • FLUSH DES_KEY_FILE mirasdır.

  • MySQL 8.0’da RESET PERSIST gibi daha yeni alternatifleri göz önünde bulundurun.

Gerekli İzinler

Çoğu FLUSH işlemi için gereklidir:

  • RELOAD ayrıcalığı

  • SUPER veya SYSTEM_VARIABLES_ADMIN (MySQL 8+’de hassas işlemler için)

Örnek:

GRANT RELOAD ON *.* TO 'admin'@'localhost';

Sonuç

FLUSH komut ailesi, MySQL’de yönetim kontrolü için esastır. İster ayrıcalıkları, günlükleri veya önbellek durumlarını yönetiyor olun, FLUSH kullanma şeklinizi ve ne zaman kullanacağınızı anlamak, sunucu performansını ve güvenilirliğini yeniden başlatmaya gerek kalmadan korumaya yardımcı olur. Bunu, özellikle üretim ortamlarında uygun ayrıcalıklarla dikkatli bir şekilde kullanın.