O que é o Strict Mode do MySQL/MariaDB?

O MySQL (e seu famoso e muito usado fork MariaDB) historicamente são muito mal falados por serem permissivos demais com algumas consistências.

De fato houve uma época sombria na qual se você tentasse inserir um texto num campo do tipo numérico, uma data inválida, um texto com mais caracteres que o máximo permitido para um campo o MySQL simplesmente marretava o dado, persistia-o de forma inconsistente e exibia um Warning informando que houve uma ou mais inconsistências naquele processo de escrita.

A estratégia do MySQL para corrigir isso foi adicionar uma configuração chamada Strict Mode, a qual indica em quais contextos ele deverá ser mais restritivo e emitir um erro nos processos de escrita que possuam dados inconsistentes.

Mas se isso é tão importante por que não é obrigatório?

Desde a versão 5.7 do MySQL e 10.2.3 do MariaDB o Strict Mode vem habilitado por padrão na instalação do Banco de Dados, mas ainda é pemitida a alteração dessa configuração tanto na instalação como na conexão/sessão estabelecida.

Mas se isso é tão importante por que manter configurável?

Por um único motivo: retrocompatibilidade. Até hoje há uma quantidade enorme de sistemas que foram desenvolvidos contando ou simplesmente sem se preocupar com tais inconsistências. E no caso de um projeto tão amplamente utilizados como o MySQL e o MariaDB esse é um mal necessário para permitir que esses clientes possam fazer atualizações da versão do banco de dados.