Eu tenho o Drupal rodando no MariaDB 5.5.33. Quando executo o update.php (após a atualização para o Drupal 7.28 do Drupal 6), recebo um erro:
Falha: PDOException: SQLSTATE [42S02]: Tabela base ou exibição não encontrada: 1146 A tabela 'webdb.location_country' não existe: CREATE TABLE {location_country} (
code
CHAR (2) NOT NULL COMMENT) Chave principal: código ISO do país com duas letras ',name
VARCHAR (255) NÃO NULL PADRÃO' 'COMENTÁRIO' Nome Completo do País ', PRIMARY KEY (code
)) MOTOR = InnoDB PADRÃO PADRÃO CONJUNTO utf8 COMENTÁRIO' Dados do país gerenciados por location.module. '; Matriz () indb_create_table () (linha 2720 de /home/web/public_html/includes/database/database.inc).
Quando tento executar o comando
CREATE TABLE {location_country} (
code
CHAR (2) NOT NULL COMMENT 'Chave primária: código ISO do país com duas letras',name
VARCHAR (255) NOT NULL DEFAULT '' COMMENT 'Nome completo do país', PRIMARY KEY (code
)) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COMMENT 'Dados do país gerenciados por location.module.';
no phpMyAdmin, recebo um erro
# 1064 - Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à versão do servidor MariaDB para a sintaxe correta a ser usada perto de '{location_country} (
code
CHAR (2) NOT NULL COMMENT' Chave Primária: Chave Primária: Duas letras IS 'na linha 1
Mas não consegui descobrir onde está o problema.
Como outras respostas (incluindo as que não estão relacionadas ao mecanismo InnoDB) a perguntas sobre essa PDOException estão marcadas como duplicadas e redirecionam para essa, acho que esse é o lugar canônico para obter respostas sobre esse problema.
Eu encontrei isso várias vezes ao desinstalar um módulo e a tabela procurada não existe no site (porque foi excluída por acidente, porque há um erro de digitação na definição do esquema em
.install
, ou por algum outro motivo).A maneira mais simples de corrigir isso é executar o script de atualização do banco de dados (
update.php
) manualmente.Depois que seu site voltar à vida, você deve tentar descobrir a causa raiz do problema e corrigi-lo.
fonte
Você precisará remover os chavetas ao redor do nome da tabela ao usar como SQL bruto.
por exemplo:
fonte
Essa é a mesma mensagem de erro ao mover o Drupal 7 de um site de desenvolvimento para outro site de desenvolvimento no meu laptop. Após verificar as tabelas no banco de dados Drupal, descobri que o dump completo do sql não estava sendo importado (usando o Adminer e a opção "Do servidor", adminer.sql).
Procure as tabelas de banco de dados Drupal 7 que se aproximam do final do dump SQL em ordem alfabética, como: usuário * , visualizações * , formulário da web * , ambiente de trabalho * , xmlsitemap * para ver se tudo foi importado.
Eu costumava
drush sql-cli < database.sql
importar o dump sql para o banco de dados Drupal depois de soltar todas as tabelas de banco de dadosdrush sql-drop
.fonte