Alcuni Contenuto Sistemi di gestione come Typo, Contao, Contenido o altri sistemi hanno problemi di MySQL 5.1 disponibile Modalità Rigorosa. Questa è l'impostazione predefinita dalla versione 5.7.
Affinché si possano utilizzare anche questi sistemi CMS c'è ancora la possibilità di disattivare la modalità strict sul lato server. Naturalmente, questo è solo condizionalmente raccomandato.
Cosa fa la modalità Strict?
La stretta modalità di MySQL/MariaDB controlla come vengono gestiti i valori non validi o mancanti nelle query di modifica dei dati, incluse le dichiarazioni INSERT, UPDATE e CREATE.
Non valido o mancante Dati portano ad avvertimenti o errori quando la query SQL viene eseguita. Se la modalità Scrict è disattivata, le interrogazioni non valide o i valori mancanti vengono regolati e viene emesso un semplice avviso. Questo può portare a risultati inaspettati.
Un esempio sarebbe un limite di carattere. Se la modalità Strict è disattivata, i caratteri in eccesso saranno tagliati per adattarli.
Perché questo accade solo con alcuni sistemi CMS?
Si può solo speculare. Probabilmente il codice è talmente esteso che nessuno riesce a capirlo. Su un sistema di gestione dei contenuti lavorano molte persone, a volte portano funzioni individuali che poi non vengono più guardate per anni. Finché non si verificano problemi gravi non è poi così male.
Con un sistema come il whmcs, anch'esso interessato, la situazione è molto diversa. Se i dati importanti vengono troncati, si verificano assegnazioni errate. Questo può essere problematico nel caso di un accordo.
Dove possono essere applicate queste istruzioni?
Le istruzioni si riferiscono a sistemi Linux con MySQL 5.6/5.7 o MariaDB 10.1 e più in alto dove è attiva la Modalità Rigorosa.
Per apportare le modifiche è necessario l'accesso alle radici. Le nostre istruzioni si riferiscono sempre a Centos Linux. Con altre distribuzioni, i file di configurazione possono trovarsi in altre directory.
Passo 1: Creare backup
Quando si modificano i file, si dovrebbe sempre fare un backup. È troppo facile cancellare qualcosa inavvertitamente.
cp -a /etc/my.cnf{,.strict.bak}
Il comando crea un file my.cnf.strict.bak dal my.cnf.nella stessa directory.
Passo 2: Disattivare la modalità MySQL Strict
Il file normalmente non contiene sql_mode=... quindi la seguente riga dovrebbe essere aggiunta alla sezione [mysqld] :
sql_mode=""
Passo 3: Riavviare il servizio MySQL
Dopo aver modificato il file, il servizio deve essere riavviato per applicare le modifiche.
systemctl riavvio mariadb
Dopo il riavvio del servizio è possibile controllare l'impostazione eseguendo il seguente comando. Qui come esempio con la password su un Server Plesk. In alternativa con root e la password.
mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "SELECT @@sql_mode;".
Dovrebbe poi apparire il seguente ritorno:
+————+
| @@@sql_mode |
+————+
| |
+————+