La modalità rigorosa di MySQL e MariaDB controlla come vengono gestiti i valori non validi o mancanti nelle query di modifica dei dati; questo include le istruzioni INSERT, UPDATE e CREATE TABLE. Con la modalità rigorosa MySQL abilitata, che è lo stato predefinito, i dati non validi o mancanti possono causare avvisi o errori quando si tenta di elaborare la query.
Quando la modalità rigorosa è disabilitata, la stessa query avrebbe i suoi valori non validi o mancanti regolati e produrrebbe un semplice avviso. Questo può sembrare il risultato preferito, tuttavia con la modalità rigorosa disabilitata alcune azioni possono causare risultati imprevisti; ad esempio, quando il valore inserito supera il limite massimo di caratteri, verrà troncato per rientrare nel limite.
Ci sono vari motivi per cui potrebbe essere necessario disabilitare la modalità rigorosa di MySQL, tuttavia il più comune è quando un server esegue WHMCS:questo è un requisito di quello strumento.
Controllo pre-volo
- Queste istruzioni sono destinate specificamente alla disabilitazione della modalità rigorosa MySQL su un server Liquid Web gestito con cPanel.
- Il server dovrebbe eseguire MySQL 5.6/5.7 o MariaDB 10.x
- Per seguire questo tutorial sarà necessario l'accesso alla riga di comando e al livello root tramite SSH.
Passaggio n. 1:fai sempre i backup!
Ogni volta che si modificano i file su un server, è sempre consigliabile eseguire in anticipo una forma di backup. Questo ti assicura di avere un modo per ripristinare le modifiche se qualcosa va storto; è anche utile perché aiuta a tenere traccia di quando e quali modifiche sono state apportate.
Dopo aver effettuato l'accesso a SSH con l'utente root, procedi come segue:
cp -a /usr/my.cnf{,.strict.bak}
cp -a /etc/my.cnf{,.strict.bak}
Passaggio n. 2:disabilita la modalità rigorosa di MySQL
A seconda del server e delle configurazioni correnti, potrebbe essere necessario modificare uno o entrambi i seguenti file sul server. In genere, le righe di configurazione rilevanti si trovano solo in una di esse, tuttavia potrebbe trovarsi in una delle due senza causare problemi; quindi generalmente è meglio controllare entrambi.
Per modificare i file, aprirai il file con il tuo editor della riga di comando preferito. In questo esempio, utilizziamo 'vim'.
vim /usr/my.cnf
vim /etc/my.cnf
All'interno di ogni file sopra cercherai una riga con il seguente contenuto:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Se trovi una riga simile alla precedente che sta impostando la variabile `sql_mode`, dovrai sostituirla con la seguente riga per disabilitare la modalità rigorosa di MySQL.
sql_mode=""
Una volta che questa regolazione è stata effettuata, o hai confermato che il file non ha bisogno di essere modificato, salverai e chiuderai il file.
Passaggio n. 3:riavvia il servizio MySQL
Infine, per rendere effettive queste modifiche, dovrai riavviare il servizio MySQL poiché leggerà i file di configurazione solo quando verrà caricato inizialmente. Per forzare MySQL a utilizzare i nuovi file di configurazione, esegui le seguenti operazioni:
Per i server CentOS 7:systemctl restart mysql
Per CentOS 6 e precedenti:/etc/init.d/mysql restart
Dopo aver eseguito questo comando sul server, il servizio MySQL verrà riavviato e caricherà le modifiche apportate. Se tutte le istruzioni sono state seguite e completate, la modalità rigorosa di MySQL dovrebbe ora essere disabilitata.
Per verificare che il processo sia stato completato correttamente puoi eseguire quanto segue:
mysql -e "SELECT @@sql_mode;"
L'output potrebbe essere simile al seguente:
+--------------------------------------------+
| @@sql_mode
+--------------------------------------------+
| NO_AUTO_CREATE_USER
+--------------------------------------------+
Se hai domande o non ti senti a tuo agio nell'apportare queste modifiche da solo, non esitare a contattare Heroic Support®.