...

Como desactivar o modo MySQL Strict

Alguns Conteúdo Sistemas de gestão como Typo, Contao, Contenido ou outros sistemas têm problemas com o MySQL 5.1 disponível no Modo Restrito. Esta tem sido a configuração padrão desde a versão 5.7.

Para que também se possa utilizar estes sistemas CMS ainda existe a possibilidade de desligar o modo estrito do lado do servidor. Claro, isto só é recomendado condicionalmente.

O que faz o modo Strict?

O modo rigoroso do MySQL/MariaDB controla como valores inválidos ou ausentes são tratados nas consultas de alteração de dados, incluindo declarações INSERT, UPDATE, e CREATE.

Inválido ou ausente Dados levam a avisos ou erros quando a consulta SQL é executada. Se o modo Scrict estiver desligado, as consultas inválidas ou os valores em falta são ajustados e é emitido um simples aviso. Isto pode levar a resultados inesperados.

Um exemplo seria um limite de caracteres. Se o modo Strict for desligado, o excesso de caracteres será cortado para que ele se ajuste.

Porque é que isto só ocorre com alguns sistemas CMS?

Só se pode especular. Provavelmente o código é tão extenso que ninguém o consegue descobrir. Em um sistema de gerenciamento de conteúdo trabalham muitas pessoas, às vezes trazem funções individuais que depois não são mais vistas durante anos. Desde que não ocorram problemas graves, não é assim tão mau.

Com um sistema como o whmcs, que também é afetado, a situação é bem diferente. Se dados importantes forem truncados, ocorrerão atribuições incorretas. Isto pode ser problemático no caso de um acordo.

Onde podem ser aplicadas estas instruções?

As instruções referem-se a sistemas Linux com MySQL 5.6/5.7 ou MariaDB 10.1 e mais alto onde o Modo Estrito está activo.

O acesso de raiz é necessário para fazer as alterações. As nossas instruções referem-se sempre a Centos Linux. Com outras distribuições, os arquivos de configuração podem ser localizados em outros diretórios.

Passo 1: Criar backups

Ao editar arquivos, você deve sempre fazer um backup. É demasiado fácil apagar algo involuntariamente.

cp -a /etc/my.cnf{,.strict.bak}

O comando cria um ficheiro my.cnf.strict.bak a partir do my.cnf no mesmo directório.

Passo 2: Desactivar o modo MySQL Strict

O arquivo normalmente não contém sql_mode=... então a seguinte linha deve ser adicionada à seção [mysqld] :

sql_mode=""".

Passo 3: Reinicie o serviço MySQL

Após a edição do arquivo, o serviço deve ser reiniciado para aplicar as alterações.

systemctl restart mariadb

Após o reinício do serviço, você pode verificar a configuração executando o seguinte comando. Aqui como exemplo com a senha em um Servidor Plesk. Alternativamente com a raiz e a senha.

mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "SELECT @@sql_mode;"

O seguinte retorno deve então aparecer:

+————+

| @@sql_mode |

+————+

| |

+————+

Artigos actuais

Dois especialistas discutem, num escritório bem iluminado, a arquitetura de funcionamento de uma aplicação PHP.
Servidor web Plesk

NGINX Unit como alternativa ao PHP-FPM? Arquitetura, riscos e casos de utilização

O NGINX Unit era capaz de executar PHP diretamente, mas, devido ao facto de o projeto estar arquivado, não é uma recomendação geral para novas plataformas de alojamento PHP. A comparação apresenta a arquitetura, os modelos de processo e os passos a seguir para instalações existentes.

A administradora verifica um processo de atualização da base de dados na sala de operações de alojamento
Bases de dados

MariaDB 12.0: funcionalidades, riscos da atualização e estratégia de alojamento

O MariaDB 12.0 traz novas funcionalidades de otimização, auditoria, replicação e segurança. No entanto, para as plataformas de alojamento, o mais importante é um percurso de atualização controlado: o modelo de lançamento, a versão dos pacotes, a configuração, as aplicações e o plano de contingência têm de estar em sintonia.