Resolver problemas

Drupal antigo: conflito com a tabela system no MySQL 8

Revisto a 3 min de leitura mysql compatibilidad

Procedimento retirado. Não mude o nome da tabela system nem adicione um prefixo isolado em produção. O Drupal 6 e o Drupal 7 estão fora de suporte, e uma modificação parcial pode quebrar consultas do núcleo ou de módulos.

O MySQL 8 transformou SYSTEM em palavra reservada. Um erro 1064 genérico não demonstra que essa seja a causa: guarde a consulta completa e confirme que falha precisamente ao referir-se a system sem escape.

Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds

O Drupal 7.76 incorporou suporte para MySQL 8 e o escape de nomes reservados. A configuração $db_prefix mostrada no procedimento antigo correspondia ao Drupal 6; o Drupal 7 usa prefix dentro de $databases['default']['default']. Nenhuma dessas versões deve voltar a ser publicada como site definitivo.

Recuperação segura

  • Isole a instalação e crie cópias verificadas dos ficheiros e da base de dados.
  • Se for Drupal 7 anterior à 7.76, atualize apenas uma cópia isolada para a última versão do Drupal 7 para recuperar a compatibilidade de leitura com o MySQL 8.
  • Se for Drupal 6, utilize no ambiente de recuperação uma base de dados compatível com essa versão; não o exponha à Internet.
  • Migre os dados para uma versão mantida do Drupal e valide utilizadores, conteúdo, ficheiros, URLs e módulos antes de publicar.

Consulte o anúncio oficial de suporte de MySQL 8 no Drupal 7.76. Se uma consulta direta de um módulo continuar sem escapar a tabela, substitua ou corrija esse módulo no clone; não mude o nome de uma tabela central para esconder o sintoma.

Depois de recuperar a leitura

Verifique contagens, utilizadores, ficheiros e conteúdo antes de exportar para o destino. O facto de uma consulta voltar a funcionar não comprova a compatibilidade de todos os módulos com o MySQL 8 nem a segurança da versão antiga.

Mantenha os URLs com tráfego ou ligações e prepare as suas equivalências no site novo. Se houver consultas SQL personalizadas, faça um inventário das suas diferenças e substitua as que dependam de um comportamento antigo durante a migração.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.