O 1044 aparece quase sempre na hora de importar um ficheiro .sql. Diz que o utilizador, já aceite, não tem permissão sobre aquela base de dados. O erro vê-se assim: #1044 - Access denied for user 'abc_util'@'localhost' to database 'outra_base'. Repare no nome do fim: se não é a base para onde você está a importar, já tem o culpado.
Numa conta de hospedagem partilhada não se criam bases de dados por instruções SQL: criam-se no cPanel, em MySQL Databases. Um ficheiro vindo de outro servidor traz muitas vezes linhas que tentam fazer exactamente isso, e a base de dados recusa.
O que costuma estar no ficheiro
| A linha no ficheiro |
Porque falha aqui |
| CREATE DATABASE ... |
O utilizador da conta não cria bases por SQL. A base já existe, criou-a você no cPanel. |
| USE `outra_base`; |
Manda trabalhar numa base com o nome da origem, que aqui não existe ou não é sua. É o caso mais comum do 1044. |
| DROP DATABASE ... |
Apagar uma base inteira também não é permitido por SQL. Apague o conteúdo pelo phpMyAdmin, se for o caso. |
| DEFINER=... em vistas, gatilhos ou rotinas |
Aponta para um utilizador que não é o seu. Costuma dar outro número (o 1227), mas a cura é a mesma: tirar a cláusula ou trocá-la pelo seu utilizador. |
| GRANT ... ou CREATE USER ... |
Utilizadores e privilégios criam-se no cPanel, não por SQL. |
Corrigir, passo a passo
| 2 |
Faça uma cópia do ficheiro e abra-a num editor de texto sério. Os ficheiros grandes pedem um editor feito para isso; o Bloco de Notas pode engasgar.
|
|
| 3 |
Procure as linhas problemáticas: CREATE DATABASE, USE, DROP DATABASE. Com SSH, grep -n "CREATE DATABASE" ficheiro.sql diz em que linha estão.
|
|
| 4 |
Apague essas linhas (ou ponha -- à frente, que as transforma em comentário) e grave.
|
|
| 5 |
No phpMyAdmin escolha a base certa na coluna da esquerda antes de importar. É essa que recebe as tabelas. O limite de tamanho do ficheiro tem o seu artigo: importar com o phpMyAdmin.
|
|
|
Um prefixo diferente não é erro do ficheiro. Se as tabelas têm o prefixo de outra instalação (por exemplo wp_ na origem e outro no wp-config.php daqui), o site vê uma base vazia. Não confunda com permissões: confira o prefixo da aplicação.
|
|
Ficheiro grande de mais para abrir? Divida o trabalho: importe por SSH, onde o ficheiro não passa pelo browser e as linhas más também se tiram com um comando. Veja importar uma base de dados grande por SSH.
|
PRODUTO RECOMENDADO Alojamento de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde $6.60/mês (plano de 3 anos, com cupom) Ver planos |