Veja abaixo a listagem dos erros mais comuns em MySQL e em seguida, como resolver alguns desses erros :
Tabela de conteúdo
1- User SeuLogin has exceeded the 'max_user_connections' resource (current value: XX)
2- Provider error '8000ffff' Catastrophic failure
3- Unable to connect to any of the specified MySQL hosts
4- Too many connections
5- Server shutdown in progress
6- Lost connection to server during query
7- Lost connection to MySQL server at ’reading initial communication packet’
8- Server has gone away
9- MySQL server has gone away
10- Packet too large
11- Illegal mix of collations (collation1,IMPLICIT) and (collation2,IMPLICIT) for operation '<;=;>'
12- Table 'nome_da_tabela' doesn’t exist
13- Can’t find file: 'nome_da_tabela'
14- Warning: Table 'nome_da_tabela' is marked as crashed and should be repaired query
15- Can’t open file: tabela.myi
16- Table-Corruption Issues
16.1- Causas que levam uma tabela ao corrompimento
16.2- Medida preventiva
17- Client does not support authentication protocol
18- The table is full
19- an’t create/write to file
20- Can’t initialize character set
User SeuLogin has exceeded the 'max_user_connections' resource (current value: XX)
Para evitar uma sobrecarga, o usuário do MySQL possui um limite de 500 conexões ao servidor. Quando o seu usuário está com todas estas conexões abertas e tenta fazer mais uma conexão é apresenta esse erro. Para ter seu problema resolvido será preciso encerrar as suas conexões abertas.
Uma boa prática de programação é a de conectar ao banco, executar a query e encerrar a conexão ao banco, mas se seu site possuir uma grande quantidade de visitas e as otimizações não forem o suficiente para resolver seu problema, deve-se analisar a possibilidade de upgrade de plano para um servidor de maior capacidade.
Unable to connect to any of the specified MySQL hosts
Esta mensagem de erro pode ocorrer, caso esteja sendo utilizado o endereço(host, ip) incorreto de acesso ao servidor MySql.
Para resolver esta dificuldade, sugiro que reveja se os dados de conexão com o banco encontram-se corretamente configurados no seu script ou arquivo de configuração(Web.Config) e efetue novos testes.
Se estiver tudo correto no seus scripts e o problema continua ocorrendo, entre em contato conosco e verifique se existe algum problema de conectividade(rede) confirmado. Constatamos que este erro pode ocorrer devido a problemas de conectividade entre o servidor Web x MySql.
Caso mesmo assim continue enfrentando dificuldades, crie um chamado no iCA solicitando verificação, no mesmo chamado informe como que a iSET pode reproduzir o problema.
Too many connections
Ocorre quando o limite máximo de conexão do servidor foi atingido, dificilmente isso ocorrerá por conta do limite de conexão por usuários.Neste caso, crie um chamado no iCA solicitando verificação.
Server shutdown in progress
O servidor de banco de dados esta sendo reinicializado, é necessário aguardar alguns minutos até que o serviço volte.
Lost connection to server during query
Quando você executa uma query pesada, ou seja, que demora muito tempo, pode-se deparar com este erro. Quando isso ocorre, é preciso otimizar a sua base de dados, como no exemplo contido em Otimizações nas consultas ao banco de dados, ou então, analisar a possibilidade de fazer um upgrade de plano.
Lost connection to MySQL server at ’reading initial communication packet’
Ocorre quando você se conecta ao servidor correto, mas especifica uma porta incorreta. A porta padrão do MySQL é a 3306, ao qual é padrão na iSET também.Em alguns casos, isso pode ser problema na rede entre o servidor da aplicação e o servidor do banco de dados, portanto em casos como este você também poderá contatar-nos para verificação.
MySQL server has gone away
Este erro ocorre quando você demora para executar uma query após conectar-se ao servidor MySQL, por questões operacionais e de desempenho, o servidor encerra a conexão ociosa automaticamente.
Para resolver este erro, programe seu script para conectar-se ao banco, executar a query e encerrar a conexão.O tempo de duração de uma conexão ociosa ao servidor é de 15 segundos.
Packet too large
Ocorre quando se envia uma grande quantidade de dados ao servidor MySQL, que por questões operacionais e de performance, limita esta quantidade a 16 MB.
Illegal mix of collations (collation1,IMPLICIT) and (collation2,IMPLICIT) for operation '<;=;>'
Quando collation1 e collation2 estiverem diferentes você não terá uma consulta com êxito.
Can’t find file: 'nome_da_tabela'
Ocorre quando a tabela especificada na query não existe. Este erro também ocorre se o nome da tabela conter letras maiúsculas ou minúsculas que não forem referenciadas na Query com os mesmos tipos de letras.
Quem está acostumado com SQL Server e Access sentirá essa diferença, essa é uma característica do MySQL na iSET, pois ele está instalado em servidores Linux exclusivos para banco de dados (clientes de hospedagens Windows que utilizam MySQL também possuem suas bases alocadas em servidores Linux), cuja característica é case-sensitive (diferenciar maiúsculas e minúsculas).
A alteração da configuração do MySQL para Case Insensitive em tabelas implicará na alteração global do servidor, o que pode causar perda de informações para outros clientes, neste caso a aquisição de um plano do tipo Servidores Dedicados será a solução se não houver a possibilidade de corrigir o nome das tabelas em sua aplicação.
Table-Corruption Issues
Ocorre quando a tabela referenciada está corrompida, você pode resolver este problema com a query: REPAIR TABLE sua_tabela;
Pelo phpMyAdmin você pode clicar em sua base de dados à esquerda, selecionar a(s) tabela(s) a ser(em) reparada(s) e no menu dropdown abaixo Reparar tabelas / Repair tables. A reparação excluirá todos os dados inconsistentes.
O que são dados inconsistentes ?
São registros que estavam sendo inseridos (INSERT), modificados (UPDATE) ou excluídos (DELETE) no momento do corrompimento da tabela.
Caso não consiga reparar a tabela, crie um chamado no iCA informando:
- Quais a(s) tabela(s) a ser(em) reparada(s)
- Usuário e senha de acesso ao seu banco de dados no campo Dados Sigilosos do chamado.
- Informar que está ciente de que a reparação excluirá dados inconsistentes.
Causas que levam uma tabela ao corrompimento:
- Conexões abertas que não são encerradas.
- Interrupção inesperada de um serviço MySQL (pode envolver instabilidades no sistema operacional do servidor), neste caso consulte abaixo as medidas preventivas.
Medida preventiva:
- Evite utilizar tabelas grandes (que ocupem bastante espaço), pois geralmente o tempo de resposta das operações nelas é maior, como alternativa você pode utilizar particionamento de tabelas (dividi-las).
- Utilize InnoDB caso seja uma tabela que tenha muitos INSERTS, UPDATES e DELETES, pois são tabelas que tendem à ser grandes, além de muito utilizadas.
Observação: MyISAM é mais rápido somente para SELECTS, além de retornar o número de registros com precisão, o InnoDB também retorna as consultas de forma precisa, porém é mais demorado e não tem contagem exata do total de registros. InnoDB além de ser mais seguro, suporta transações e rollback.
Client does not support authentication protocol
Dificilmente ocorrerá, pois serão clientes do MySQL desenvolvidos para versões antigas (até 4.0). Neste caso você deve atualizar seu programa, que deverá ter suporte à conexão ao MySQL na versão 4.1 ou superior.
The table is full
Ocorre quando a tabela é muito grande, dificilmente você irá se deparar com esta mensagem, pois o limite conforme informado na documentação do MySQL (links abaixo) é muito alto.
MySQL 5.1 http://dev.mysql.com/doc/refman/5.1/en/full-table.html MySQL 5.0 http://dev.mysql.com/doc/refman/5.0/en/full-table.html MySQL 3.23, 4.0 e 4.1 http://dev.mysql.com/doc/refman/4.1/pt/full-table.html
Para resolver, procure excluir registros desnecessários ou dividir a tabela.
Can’t create/write to file
Crie um chamado no iCA informando a query que tentou executar, e insira o usuário e a senha da sua base de dados no campo Dados Sigilosos, pois este erro ocorre quando há algum erro de permissão na estrutura de diretórios do MySQL.
Can’t initialize character set
Quando você tenta utilizar charsets que não existem. Verifique se você configurou o charset corretamente nas queries ou em seu software de conexão ao banco, os mais utilizados são “latin1” e “utf8”, mas em alguns softwares os charsets são automáticos. Consulte a documentação de seu software para obter mais detalhes.
- 4 Utilizadores acharam útil