Mysql
 sql >> Database >  >> RDS >> Mysql

Impostazione delle variabili di configurazione di MySQL – MySQL 5.7 vs MySQL 8.0

Le variabili di configurazione MySQL sono un insieme di variabili di sistema del server utilizzate per configurare il funzionamento e il comportamento del server. In questo post del blog spiegheremo le differenze nella gestione delle variabili di configurazione tra MySQL 5.7 e MySQL 8.0.

Spiegheremo tre diversi modi per impostare le variabili di configurazione in base al tuo caso d'uso. Le variabili di configurazione che possono essere impostate in fase di esecuzione sono chiamate variabili dinamiche e quelle che necessitano di un riavvio del server MySQL per avere effetto sono chiamate variabili non dinamiche.

1:imposta la configurazione per la durata attuale di un server MySQL in esecuzione

La maggior parte delle configurazioni MySQL sono di natura dinamica e possono essere impostate in fase di esecuzione utilizzando il comando SET. Ciò significa che le modifiche non sono persistenti e andranno perse se il server MySQL viene riavviato. Questo è utile per testare il comportamento della tua modifica di configurazione prima di renderla permanente.

Per MySQL 5.7 e 8.0, puoi farlo usando il comando SET GLOBAL

Esempio:

mysql> set global max_connect_errors=10000;

2:imposta e mantieni la modifica della configurazione durante i riavvii di MySQL

Una volta che sei soddisfatto delle impostazioni di modifica della configurazione, vorrai renderle permanenti.

In MySQL 5.7, dovresti farlo in 2 passaggi:

  1. Impostare l'impostazione della configurazione del runtime utilizzando il comando SET GLOBAL
mysql> set global max_connect_errors=10000;
  1. Salva questa modifica nel tuo file my.cnf aggiornando la voce esistente per max_connect_errors o aggiungendone una nuova.

Questo è diventato molto più semplice in MySQL 8.0. Puoi farlo in un unico passaggio usando il comando SET PERSIST

mysql> set persist max_connect_errors=10000;
Come impostare le variabili di configurazione - MySQL 5.7 vs MySQL 8.0Fai clic per twittare

Questo imposterà il valore di runtime per la configurazione e persisterà anche la modifica salvandola nel file mysqld-auto.cnf che esiste nella directory dei dati. Questo è un file json e ora vedrai le seguenti voci nel file.

{

"Version": 1,

"mysql_server": {

"max_connect_errors": {

"Value": "10000",

"Metadata": {

"Timestamp": 1581135119397374,

"User": "sgroot",

"Host": "localhost"

}

}

}

}

Nota: Le impostazioni di configurazione presenti in mysqld-auto.cnf sovrascrivono sempre i valori presenti nel file my.cnf. Pertanto, qualsiasi ulteriore modifica apportata al file my.cnf per la variabile "max_connect_errors" non ha effetto. Questo potrebbe creare confusione per coloro che stanno passando da MySQL 5.7 in quanto potrebbero essere utilizzati per memorizzare tutte le loro impostazioni in my.cnf

3:impostazione di variabili di configurazione non dinamiche

Alcune delle variabili di configurazione non possono essere impostate in fase di esecuzione e richiederebbero un riavvio di MySQL per avere effetto.

In MySQL 5.7, dovresti inserire una voce per queste variabili nel tuo file my.cnf e riavviare il server MySQL affinché abbia effetto. Un esempio per una tale variabile è innodb_log_file_size.

In MySQL 8.0, puoi eseguire un comando chiamato SOLO SET PERSIST che creerà una voce in mysqld-auto.cnf.

Esempio:

mysql> set persist_only innodb_log_file_size=134217728;

È anche possibile riavviare il server MySQL dalla riga di comando usando il comando RESTART. Ciò farà sì che il valore modificato di innodb_log_file_size abbia effetto.

Nota: Il comando RESTART funziona solo se MySQL è gestito utilizzando programmi esterni come systemd o mysqld_safe. Si prega di vedere maggiori dettagli su questo qui.

Altrimenti, il comando RESTART non riesce con un messaggio come il seguente.

mysql> RESTART;

ERROR 3707 (HY000): Restart server failed (mysqld is not managed by supervisor process).

Gestione della configurazione MySQL su più server

La gestione della configurazione di MySQL in ambienti di replica sorgente è un processo noioso se devi gestire più cluster che eseguono diverse versioni di MySQL. È qui che una soluzione gestita come ScaleGrid sarebbe vantaggiosa.

La console dell'interfaccia utente di ScaleGrid può essere utilizzata per rivedere le impostazioni correnti di varie variabili di configurazione o impostarne i valori.

ScaleGrid è in grado di riconoscere quando un'impostazione di configurazione non è dinamica e avviserà l'utente se è necessario un riavvio di MySQL affinché il valore abbia effetto. ScaleGrid eseguirà anche un backup del file my.cnf corrente prima di applicare qualsiasi nuova modifica alla configurazione.

Negli ambienti di replica sorgente, ScaleGrid modifica le impostazioni di configurazione in modo progressivo un server alla volta. Se è necessario impostare una variabile non dinamica, ScaleGrid esegue un failover del master corrente per ridurre al minimo i tempi di inattività coinvolti se MySQL deve essere riavviato in altro modo.

Visita il link sottostante per saperne di più sulle diverse caratteristiche della soluzione di hosting MySQL ScaleGrid.