Comenzile MySQL FLUSH

În lumea găzduirii, MySQL rămâne una dintre cele mai importante componente pentru alimentarea site-urilor web dinamice, a magazinelor de comerț electronic, a sistemelor de gestionare a conținutului (CMS) și a platformelor SaaS. Indiferent dacă gestionați un cluster de găzduire partajată, o infrastructură VPS sau servere dedicate pentru clienți enterprise, controlul asupra operațiunilor interne ale MySQL este esențial.

Un instrument adesea ignorat, dar puternic, este comanda FLUSH – o colecție de instrucțiuni SQL administrative care vă permit să reîncărcați privilegiile, să ștergeți jurnalele, să resetați stările și să asigurați consecvența fără a reporni serverul.

Ce este FLUSH în MySQL?

Instrucțiunea FLUSH este utilizată pentru:

  • Ștergerea memoriei cache interne

  • Reîncărcarea fișierelor de configurare (cum ar fi tabelele de privilegii)

  • Resetarea informațiilor de stare

  • Forțarea MySQL să scrie date tampon pe disc

Numai utilizatorii cu privilegiul RELOAD (sau superior, cum ar fi SUPER) pot executa majoritatea operațiunilor FLUSH.

Comenzi FLUSH uzuale

1. 🔐 FLUSH PRIVILEGES

Reîncarcă privilegiile utilizatorilor din tabelele de acordare din baza de date mysql:

FLUSH PRIVILEGES;

Când să utilizați:

  • După editarea manuală a mysql.user sau a altor tabele de granturi.

  • Atunci când modificați accesul utilizatorului prin instrucțiuni UPDATE directe în loc de GRANT.

2. FLUSH TABLES

Închide toate tabelele deschise și le forțează să fie redeschise. Util în cazul întreținerii sistemului de fișiere sau al backup-urilor.

FLUSH TABLES;

De asemenea, puteți să închideți anumite tabele:

FLUSH TABLES nume_tabel [, nume_tabel] ...;

Când să utilizați:

  • Înainte de a efectua backup-uri cu instrumente externe (de exemplu, mysqldump –single-transaction).

  • După scrierile pe scară largă care pot supraîncărca memoria cache a tabelelor.

3. FLUSH QUERY CACHE

Elimină toate rezultatele interogării din memoria cache a interogării (dacă este activată):

FLUSH QUERY CACHE;

Notă: Query cache este depreciată și eliminată în MySQL 8.0.

4. FLUSH LOGS

Închide și redeschide toate fișierele jurnal (jurnal general, jurnal erori, jurnal binar, jurnal releu).

FLUSH LOGS;

Sau aruncă un anumit tip:

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

Când să utilizați:

  • După rotația jurnalelor

  • Când jurnalele sunt mutate sau arhivate

  • Pentru a reseta jurnalele pentru depanare sau conformitate

5. FLUSH HOSTS

Resetează memoria cache a gazdelor de conexiuni eșuate ale clienților.

FLUSH HOSTS;

Când se utilizează:

  • Atunci când primiți eroarea:
    Host 'xxx' is blocked because of many connection errors

6. FLUSH STATUS

Resetează majoritatea variabilelor de stare la zero (nu afectează contoarele globale precum Uptime).

FLUSH STATUS;

Când să utilizați:

  • Înainte de benchmarking sau testarea performanței.

  • Pentru a obține metrici curate cu SHOW STATUS.

7. FLUSH TABLES WITH READ LOCK

Șterge și blochează toate tabelele, împiedicând scrierea de la alte sesiuni.

FLUSH TABLES WITH READ LOCK;

Când se utilizează:

  • Pentru backup-uri instantanee consistente (de exemplu, cu LVM sau instrumente de copiere a fișierelor).

  • Important: Deblocați întotdeauna manual cu UNLOCK TABLES;

8. FLUSH DES_KEY_FILE

Reîncarcă fișierele cheie DES utilizate în vechile DES_ENCRYPT()/DES_DECRYPT() (legacy).

FLUSH DES_KEY_FILE;

9. FLUSH USER_RESOURCES

Resetează contoarele limitelor de resurse per utilizator (cum ar fi MAX_QUERIES_PER_HOUR).

FLUSH USER_RESOURCES;

Când să utilizați:

  • Resetare la mijlocul ciclului pentru utilizatorii cu resurse limitate.

Comenzi depășite/înlăturate

  • FLUSH QUERY CACHE este eliminat în MySQL 8.0.

  • FLUSH DES_KEY_FILE este moștenit.

  • Luați în considerare alternative mai noi în MySQL 8.0, cum ar fi RESET PERSIST.

Permisiuni necesare

Majoritatea operațiunilor FLUSH necesită:

  • PrivilegiulRELOAD

  • SUPER sau SYSTEM_VARIABLES_ADMIN (pentru operațiuni sensibile în MySQL 8 )

Exemplu:

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

Concluzie

Familia de comenzi FLUSH este esențială pentru controlul administrativ în MySQL. Fie că gestionați privilegii, jurnale sau stări ale cache-ului, înțelegerea modului și momentului de utilizare a FLUSH vă ajută să mențineți performanța și fiabilitatea optimă a serverului fără a necesita o repornire. Folosiți-o cu înțelepciune, cu privilegii adecvate, în special în mediile de producție.