Plugin e componenti

Alcuni plugin e componenti di MySQL Server vengono caricati automaticamente nel sistema DB. Non è necessario installare nessuno di questi plugin.

  • Pool di thread di MySQL Enterprise: il plugin del pool di thread fornisce un modello alternativo di gestione dei thread progettato per ridurre il sovraccarico e migliorare le prestazioni. Vedere MySQL Enterprise Thread Pool.
    Il sistema DB HeatWave registra il numero di connessioni gestite dal plugin del pool di thread. Un messaggio viene scritto nel log degli errori ogni due minuti. L'intervallo si riduce a 12 secondi nei primi tre minuti dopo il corretto avvio del sistema DB. Le connessioni sono raggruppate in utenti non amministratori (utenti senza il privilegio TP_CONNECTION_ADMIN) e utenti amministratori (utenti con il privilegio TP_CONNECTION_ADMIN). Per ogni gruppo vengono fornite le informazioni riportate di seguito.
    • Gestito: sessioni attualmente aperte alla fine dell'intervallo di log e gestite dai gruppi di thread.
    • Delta: modifica del numero di sessioni gestite durante l'ultimo intervallo di log.
    • Attivo: sessioni che sono state attive (eseguendo una query) per un certo periodo di tempo durante l'ultimo intervallo.
    • Aperte: sessioni aperte durante l'ultimo intervallo.
    • Chiuso: sessioni chiuse durante l'ultimo intervallo.
    • Aggiunta: sessioni aperte durante l'ultimo intervallo e non ancora chiuse.
    • Elimina: sessioni aperte in un intervallo precedente e chiuse durante l'ultimo intervallo.
    A partire da MySQL 9.1.0, mostra anche le statistiche per le connessioni che vengono stabilite. Vengono fornite le informazioni riportate di seguito.
    • In: numero di richieste di connessione in entrata nell'ultimo intervallo.
    • Coda: numero di richieste attualmente presenti nelle code tra il server e il pool di thread.
    • Autore: numero di richieste attualmente autenticate.
    • Errore: numero di richieste interrotte nell'ultimo intervallo prima di essere trasferite al pool di thread.
    • OK: numero di richieste gestite e consegnate al pool di thread come nuove sessioni gestite nell'ultimo intervallo.
    È possibile visualizzare questi messaggi con questa query SQL:
    SELECT * FROM performance_schema.error_log WHERE DATA LIKE 'TP conn%'\G
    Questa è una riga di esempio dell'output in MySQL 9.1.0:
        LOGGED: 2024-10-28 05:41:33.402235
     THREAD_ID: 0
          PRIO: Note
    ERROR_CODE: MY-015507
     SUBSYSTEM: Server
          DATA: TP conn (init: in, queue, auth, err, ok. 
                         port: managed(delta), active, opened, closed, added, dropped.):
                         Init: 23, 2, 5, 2, 18. 
                         Usr: 6(+1), 6, 17, 15, 2, 1. Adm: 2(+1), 2, 1, 0, 1, 0.
    
    Nell'output di esempio, sono state ricevute 23 richieste di connessione durante l'ultimo intervallo. Ci sono ancora 2 richieste nella coda e cinque richieste sono in fase di autenticazione. Ha gestito 20 richieste di connessione in cui 18 sono state consegnate ai gruppi di thread e 2 non sono riuscite. Il gruppo usr mostra che esiste 1 sessione utente in più rispetto all'intervallo precedente, con un totale di 6 sessioni utente alla fine di questo intervallo. Tutte le 6 sessioni hanno eseguito una o più query nell'intervallo. Ci sono 17 nuove sessioni in fase di apertura e 15 sessioni in fase di chiusura durante questo intervallo. Alla fine dell'intervallo, 2 delle nuove sessioni aperte non sono state chiuse mentre 1 sessioni dell'intervallo precedente sono state chiuse.
    Per un pool di thread con thread_pool_size=N, ci saranno gruppi di thread N sui quali verranno assegnate le sessioni degli utenti non amministratori in modalità round robin, mentre esiste un singolo gruppo di thread a cui verranno assegnate le sessioni dell'utente amministratore. Il pool di thread avrà gruppi di thread N+1.
    Nota

    Si consiglia di creare un account utente distinto concesso solo con i privilegi necessari per l'applicazione anziché utilizzare l'account amministratore per tutti gli scopi. Vedere CREATE USER Statement e GRANT Statement.
  • Plugin di audit MySQL Enterprise: il plugin di audit consente a MySQL Server di produrre un file di log contenente un record di audit dell'attività del server. I contenuti del log includono quando i client si connettono e disconnettono e quali azioni eseguono durante la connessione, ad esempio i database e le tabelle a cui accedono. È possibile aggiungere statistiche per il tempo e le dimensioni di ogni query per rilevare valori erratici. Non è possibile modificare i valori predefiniti del plugin.
    • audit_log_buffer_size: 10485760
    • audit_log_compression: GZIP
    • audit_log_database: mysql_audit
    • audit_log_file: /db/audit/audit.log
    • audit_log_flush_interval_seconds: 60
    • audit_log_format: JSON
    • audit_log_format_unix_timestamp: ON
    • audit_log_max_size: 5368709120
    • audit_log_prune_seconds: 604800
    • audit_log_rotate_on_size: 52428800
    Per impostazione predefinita, i log dei plugin di audit sono disabilitati e occorre definire i filtri per abilitare la registrazione di tutti gli eventi verificabili per tutti gli utenti. Vedere Definizione dei filtri del plugin di audit. Per impostazione predefinita, sono stati concessi pochi privilegi globali e alcuni privilegi sono stati revocati dallo schema mysql_audit. Vedere Privilegi MySQL predefiniti e Plugin di audit MySQL Enterprise.
  • Plugin connection_control: MySQL Server include una libreria di plugin che consente agli amministratori di introdurre un ritardo crescente nella risposta del server ai tentativi di connessione dopo un numero configurabile di tentativi consecutivi non riusciti. Il valore predefinito delle variabili del plugin connection-control è il seguente e non è possibile modificare i valori predefiniti:
    • connection_control_failed_connections_threshold: 3
    • connection_control_max_connection_delay: 10000
    • connection_control_min_connection_delay: 1000
    Vedere Plugin di controllo della connessione.
  • Componente validate_password: il componente serve a migliorare la sicurezza richiedendo le password degli account e abilitando il test di efficacia delle potenziali password. Il valore predefinito delle variabili del componente validate_password è il seguente e non è possibile modificare i valori predefiniti:
    • validate_password.check_user_name: ON
    • validate_password.length: 8
    • validate_password.mixed_case_count: 1
    • validate_password.number_count: 1
    • validate_password.policy: MEDIUM
    • validate_password.special_char_count: 1
    Vedere Componente convalida password.
  • Mascheramento dati: le funzioni di mascheramento generiche mascherano stringhe arbitrarie, le funzioni di mascheramento con scopo speciale mascherano tipi di valori specifici e generano funzioni che generano valori casuali. Vedere Mascheramento dei dati.