Fontes de Informações do MySQL

1.7. Fontes de Informações do MySQL

1.7.1. Listas de Discussão MySQL

Esta seção introduz a lista de deiscussão do MySQL e dá algumas explicações sobre como a lista deve ser utilizada. Quando você se inscreve na lista de discussão, você receberá, como mensagens de email, tudo o que é enviado para a lista. Você também poderá enviar suas próprias dúvidas e respostas para a lista.

1.7.1.1. As Listas de Discussão do MySQL

Para se inscrever ou cancelar a inscrição de qualquer uma das listas de email descritas nesta seção, visite http://lists.mysql.com/. Por favor, não envie mensagem sobre inscrição ou cancelamento para qualquer das listas de emasil, porque tais mensagens são distribuídas automaticamente para milhares de outros utilizadores.

Seu site local pode ter muitas inscrições para uma lista de email do MySQL. Se sim, o site pode ter uma lista de email local, assim as mensagens enviadas para lists.mysql.com do seu site são propagadas para a lista local. Nestes casos, por favor, contate seu administrador de sistema para adicionado ou excluido da lista local do MySQL.

Se você quiser que as mensagens da lista de discussão sejam enceminhadas para uma caixa de correio separada no seu programa de emails, configure um filtro com base nos cabeçalhos das mensagens. Você pode também usar os cabeçalhos List-ID: ou Entregar-Para: para identificar suas mensagens.

Existe também as seguintes listas de discussão sobre MySQL atualmente:

  • announce

    Esta é para anuncio de novas versões do MySQL e programas relacionados. Esta é uma lista com baixo volume na qual todos usuarios do MySQL deveriam se inscrever.

  • mysql

    A principal lista para discussões MySQL em geral. Note que alguns tópicos são mais bem discutidos em listas mais especializadas. Se você enviar para a lista errada você pode não obter resposta.

  • mysql-digest

    A lista mysql na forma resumida. Isto significa que você irá receber todas mensagens individuais, enviadas na forma de uma grande mensagem uma única vez ao dia.

  • bugs

    Esta lista só será do seu interesse se você quiser ficar informado sobre assuntos relatados desde a última distribuição do MySQL ou se você quiser estar ativamente envolvido no processo de busca e correção de erros. See Secção 1.7.1.3, “Como relatar erros ou problemas”.

  • bugs-digest

    Uma versão resumida da lista bugs.

  • internals

    Uma lista para pessoas que trabalham no código do MySQL. Nesta lista pode-se discutir desenvolvimento do MySQL e pos-patches.

  • internals

    Uma versão resumida da lista internals.

  • mysqldoc

    Esta lista é para pessoas que trabalham na documentação do MySQL: pessoas da MySQL AB, tradutores e outros membros da comunidade.

  • mysqldoc-digest

    Esta é uma versão resumida da lista mysqldoc.

  • benchmarks

    Esta lista é para qualquer um interessado em assuntos de desempenho. Discussões concentradas em desempenho de banco de dados (não limitado ao MySQL) mas também inclue categorias ,com desempenho do kernel, sistema de arquivos, sistema de disco e outros.

  • benchmarks

    Esta é uma versão resumida da lista benchmarks.

  • packagers

    Esta lista é para discussões sobre empacotamento e distribuição do MySQL. Este é o fórum usado pela pessoas que mantém a distribuição para troca de idéias de pacotes do MySQL e para assegurar que o MySQL esteja o mais parecido possível em todas as plataformas e sistemas operacionais suportados.

  • packagers-digest

    Esta é uma versão resumida da lista packagers.

  • java

    Discussão sobre o servidor MySQL e Java. É mais usada para discussões sobre o driver JDBC, incluindo MySQL Connector/J.

  • java-digest

    Uma versão resumida da lista java.

  • win32

    Esta é a lista para todos os tópicos relacionados ao MySQL em sistemas operacionais Microsoft, como o Win95, Win98, NT e Win2000.

  • win32-digest

    Uma versão resumida da lista win32.

  • myodbc

    Lista para todos os tópicos relacionados a conectividade do MySQL com ODBC.

  • myodbc-digest

    Uma versão resumida da lista myodbc.

  • mysqlcc

    Esta lista é sobre todos os tópicos relativos ao cliente gráfico MySQL Control Center.

  • mysqlcc-digest

    Esta lista é uma versão resumida da lista mysqlcc.

  • plusplus

    Lista sobre todos os tópicos relacionados à programação da API C++ para o MySQL.

  • plusplus-digest

    Uma versão resumida da lista plusplus.

  • msql-mysql-modules

    Lista sobre o Suporte MySQL no Perl com o msql-mysql-modules que é chamado DBD-mysql.

  • msql-mysql-modules-digest

    Lista resumida sobre a versão do msql-mysql-modules.

Se você não obtiver uma resposta para suas questões na lista de mensagens do MySQL, uma opção é pagar pelo suporte da MySQL AB, que irá colocar você em contato direto com desenvolvedores MySQL. See Secção 1.4.1, “Suporte Oferecido pela MySQL AB”.

A seguinte tabela mostra algumas listas de mensagens sobre o MySQL que utilizam linguas diferentes do Inglês. Perceba que elas não são operadas pela MySQL AB, portanto, não podemos garantir a qualidade destas.

1.7.1.2. Fazendo perguntas ou relatando erros

Antes de enviar um relato de erro ou uma questão, por favor faça o seguinte:

Se você não puder encontrar uma resposta no manual ou nos arquivos, confira com seu expert em MySQL local. Se você continua não encontrando uma resposta para sua questão, vá em frente e leia a próxima seção para saber como enviar email para lista de email do MySQL.

1.7.1.3. Como relatar erros ou problemas

Nosso banco de dados de bugs é publico e pode ser pesquisado por qualquer um em http://bugs.mysql.com/. Se você logar no sistema, você poderá entrar novos relatórios.

Escrever um bom relatório de erro exige paciência, e fazê-lo de forma apropriada economiza tempo para nós e para você. Um bom relatório de erros contendo um teste de caso para o bug irá torná-lo muito mais fácil para corrigí-lo no próximo release. Esta seção irá ajudá-lo a escrever seu relatório corretamente para que você não perca seu tempo fazendo coisas que não irão ajudar-nos muito ou nada.

Nós encorajamos todo mundo a usar o script mysqlbug para gerar um relato de erros (ou um relato sobre qualquer problema), se possível. mysqlbug pode ser encontrado no diretório scripts na distribuição fonte, ou, para uma distribuição binária, no diretório bin no diretório de instalação do MySQL. Se você não puder utilizar o mysqlbug (por exemplo, se você o estiver executando no Windows), é ainda de vital importância que você incluia todas as informações necessárias listadas nesta seção (o mais importante é uma descrição do sistema operacional e a versão do MySQL).

O script mysqlbug lhe ajudará a gerar um relatório determinando muitas das seguintes informações automaticamente, mas se alguma coisa importante estiver faltando, por favor forneça-o junto de sua mensagem! Por favor leita esta seção com cuidado e tenha certeza que todas as informações descritas aquie estão incluídas no seu relatório.

De preferência, você deve testar o problema usando a última versão de produção ou desenvolvimento do Servidro MySQL antes do envio. Qualquer um deve estar apto a repetir o erro apenas usando 'mysql test < script' no caso de teste incluido ou executando o script sheel ou Perl que é incluído no relatório de erros.

Todos os erros enviados para o banco de dados dem bugs em http://bugs.mysql.com/ serão corrigidos ou documentados na próxma distribuição do MySQL. Se apenas pequenas mudanças de código forem necessárias enviaremos um patch para corrigir o problema.

O lugar comum para relatar erros e problemas é http://bugs.mysql.com.

Se você encontrar um erro de segurança no MySQL, envie um email para .

Se você tiver um relatório de erro que possa ser repetido, relate-o no banco de dados de bugs em http://bugs.mysql.com. Note que mesmo neste caso é bom executar o script mysqlbug primeiro para ter informações sobre o sistema. Qualquer erro que pudermos repetir tem uma grande chance de ser corrigido na próxima distribuição do MySQL.

Para relatar outros problemas, você pode usar a lista de email do MySQL.

Lembre-se que é possível responder a uma mensagem contendo muita informação, mas não a uma contendo muito pouca. Frequentemente pessoas omitem fatos porque acreditam que conhecem a causa do problema e assumem que alguns detalhes não importam. Um bom principio é: Se você está em dúvida sobre declarar alguma coisa, declare-a ! É milhares de vezes mais rápido e menos problemático escrever um pouco de linhas a mais no seu relatório do que ser forçado a perguntar de novo e esperar pela resposta porque você não forneceu informação sufiente da primeira vez.

Os erros mais comuns acontecem porque as pessoas não indicam o número da versão da distribuição do MySQL que estão usando, ou não indicam em qual plataforma elas tem o MySQL instalado (Incluindo o número da versão da plataforma). Essa informação é muito relevante, e em 99% dos casos o relato de erro é inútil sem ela! Frequentemente nós recebemos questões como, ``Por que isto não funciona para mim?'' então nós vemos que aquele recurso requisitado não estava implementado naquela versão do MySQL, ou que o erro descrito num relatório foi resolvido em uma versão do MySQL mais nova. Algumas vezes o erro é dependente da plataforma; nesses casos, é quase impossível corrigir alguma coisa sem conhecimento do sistema operacional e o número da versão da plataforma.

Lembre-se também de fornecer informações sobre seu compilador, se isto for relacionado ao problema. Frequentemente pessoas encontram erros em compiladores e acreditam que o problema é relacionado ao MySQL. A maioria dos compiladores estão sobre desenvolvimento todo o tempo e tornam-se melhores a cada versão. Para determinar se o seu problema depende ou não do compilador, nós precisamos saber qual compilador foi usado. Note que todo problema de compilação deve ser estimado como relato de erros e, consequentemente publicado.

É de grande ajuda quando uma boa descrição do problema é incluída no relato do erro. Isto é, um bom exemplo de todas as coisas que o levou ao problema e a correta descrição do problema. Os melhores relatórios são aqueles que incluem um exemplo completo mostrando como reproduzir o erro ou o problema See Secção E.1.6, “Fazendo um Caso de Teste Se Ocorre um Corrompimento de Tabela”.

Se um programa produz uma mensagem de erro, é muito importante incluir essas mensagens no seu relatório! Se nós tentarmos procurar por algo dos arquivos usando programas, é melhor que as mensagens de erro relatadas sejam exatamente iguais a que o programa produziu. (Até o caso deve ser observado!) Você nunca deve tentar lembrar qual foi a mensagem de erro; e sim, copiar e colar a mensagem inteira no seu relatório!

Se você tem um problema com o MyODBC, você deve tentar gerar um arquivo para rastremento de erros (trace) do MyODBC. See Secção 12.2.7, “Relatando Problemas com MyODBC”.

Por favor lembre-se que muitas das pessoas que lerão seu relatório podem usar um vídeo de 80 colunas. Quando estiver gerando relatórios ou exemplos usando a ferramenta de linha de comando mysql, então deverá usar a opção --vertical (ou a instrução terminadora G) para saída que irá exceder a largura disponível para este tipo de vídeo (por exemplo, com a instrução EXPLAIN SELECT; veja exemplo abaixo).

Por favor inclua a seguinte informação no seu relatório:

  • O número da versão da distribuição do MySQL que está em uso (por exemplo, MySQL Version 3.22.22). Você poderá saber qual versão vocês está executando, usando o comando mysqladmin version. mysqladmin pode ser encontrado no diretório bin sob sua instalação do MySQL.

  • O fabricante e o modelo da máquina na qual você está trabalhando.

  • O nome do sistema operacional e a versão. Para a maioria dos sistemas operacionais, você pode obter esta informação executando o comando Unix uname -a. Se você trabalho no Windows, você pode normalmente conseguir o nome e o número da versão com um duplo clique sobre o ícone ''Meu Computador'' e em seguida no menu ''Ajuda/Sobre o Windows''.

  • Algumas vezes a quantidade de memória (real e virtual) é relevante. Se estiver em dúvida, inclua esses valores.

  • Se você estiver usando uma distribuição fonte do MySQL, é necessário o nome e número da versão do compilador usado. Se você estiver usando uma distribuição binária, é necessário o nome da distribuição.

  • Se o problema ocorre durante a compilação, inclua a(s) exata(s) mensagem(s) de erro(s) e também algumas linhas do contexto envolvendo o código no arquivo onde o erro ocorreu.

  • Se o mysqld finalizou, você deverá relatar também a consulta que travou o mysqld. Normalmente você pode encontrar isto executando mysqld com o log habilitado. See Secção E.1.5, “Usando Arquivos de Log para Encontrar a Causa dos Erros no mysqld”.

  • Se alguma tabela do banco de dados estiver relacionado ao problema, inclua a saída de mysqldump --nodata nome_db nome_tbl1 nome_tbl2.... Isto é muito fácil de fazer e é um modo poderoso de obter informações sobre qualquer tabela em um banco de dados que irá ajudar-nos a criar uma situação parecida da que você tem.

  • Para problemas relacionados à velocidade ou problemas com instruções SELECT, você sempre deve incluir a saída de EXPLAIN SELECT ... e ao menos o número de linhas que a instrução SELECT produz. Você também deve incluir a saída de SHOW CREATE TABLE nome_tabela para cada tabela envolvida. Quanto mais informação você fornecer sobre a sua situação, mais fácil será para alguém ajudar-lo! A seguir um exemplo de um relatório de erros muito bom (ele deve ser postado com o script mysqlbug):

    Exemplo de execução usando a ferramenta de linha de comando mysql (perceba o uso do instrução terminadora G para instruções cuja largura de saída deva ultrapassar 80 colunas):

    mysql> SHOW VARIABLES;
    mysql> SHOW COLUMNS FROM ...G
    <saida para SHOW COLUMNS>
    mysql> EXPLAIN SELECT ...G
    <saida para EXPLAIN>
    mysql> FLUSH STATUS;
    mysql> SELECT ...;
    <Uma pequena versão da saída do SELECT,
    incluindo a hora em que a consulta foi executada>
    mysql> SHOW STATUS;
    <saida do SHOW STATUS>
    
  • Se um erro ou problema ocorrer quando estiver executando o mysqld, tente fornecer um script de entrada que irá reproduzir a anomalia. Este script deve incluir qualquer arquivo de fonte necessário. Quanto mais próximo o script puder reproduzir sua situação, melhor. Se você puder fazer uma série de testes repetidos, você poderá postá-lo para o para um tratamento de alta prioridade!

    Se não puder fornecer o script, você ao menos deve incluir a saída de mysqladmin variables extended-status processlist na sua mensagem para fornecer alguma informação da performance do seus sistema.

  • Se você não puder produzir um caso de teste em algumas linhas, ou se a tabela de testes for muito grande para ser enviada por email para a lista de mensagens (mais de 10 linhas), você deverá dar um dump de suas tabelas usando o mysqldump e criar um arquivo README que descreve seu problema.

    Crie um arquivo comprimido de seus arquivos usando tar e gzip ou zip, e use o ftp para transferir o arquivo para ftp://support.mysql.com/pub/mysql/secret/. E envie uma pequena descrição do problema para .

  • Se você achar que o MySQL produziu um resultado estranho para uma consulta, não inclua somente o resultado, mas também sua opinião de como o resultado deve ser, e uma conta descrevendo o base de sua opinião.

  • Quando fornecer um exemplo do problema, é melhor usar os nomes de variáveis, nomes de tabelas, etc. utilizados na sua situação atual do que enviar com novos nomes. O problema pode ser relacionado ao nome da variável ou tabela! Esses casos são raros, mas é melhor prevenir do que remediar. Além disso, será mais fácil para você fornecer um exemplo que use sua situação atual, que é o que mais importa para nós. No caso de ter dados que não deseja mostrar para outros, você pode usar o ftp para transferi-lo para ftp://support.mysql.com/pub/mysql/secret/. Se os dados são realmente confidenciais, e você não deseja mostrá-los nem mesmo para nós, então vá em frente e providencie um exemplo usando outros nome, mas, por favor considere isso como uma única chance.

  • Inclua, se possível, todas as opções fornecidas aos programas relevantes. Por exemplo, indique as opções que você utiliza quando inicializa o daemon mysqld e aquelas que são utilizadas para executar qualquer programa cliente MySQL. As opções para programas como o mysqld e mysql, e para o script configure, são frequentemente chaves para respostas e são muito relevantes! Nunca é uma má idéia incluí-las de qualquer forma! Se você usa algum módulo, como Perl ou PHP por favor forneça o número da versão deles também.

  • Se sua questão é relacionada ao sistema de privilégios, por favor forneça a saída de mysqlaccess, a saída de mysqladmin reload, e todas as mensagens de erro que você obteve quando tentava conectar! Quando você testar seus privilégios, você deve primeiramente executar mysqlaccess. Depois, execute mysqladmin reload version e tente conectar com o programa que gerou o problema. mysqlaccess pode ser encontrado no diretório bin sob seu diretório de instalação do MySQL.

  • Se você tiver um patch para um erro, isso é bom, mas não assuma que o patch é tudo que precisamos, ou que iremos usá-lo, se você não fornecer algumas informações necessárias, como os casos de testes mostrando o erro que seu patch corrige. Nós podemos encontrar problemas com seu patch ou nós podemos não entendê-lo ao todo; se for assim, não podemos usá-lo.

    Se nós não verificarmos exatamente o que o patch quer dizer, nós não poderemos usá-lo. Casos de testes irão ajudar-nos aqui. Mostre que o patch irá cuidar de todas as situações que possam ocorrer. Se nós encontrarmos um caso (mesmo que raro) onde o patch não funcionaria, ele pode ser inútil.

  • Palpites sobre qual é o erro, porque ocorre, ou do que ele depende, geralmente estão errados. Mesmo o time MySQL não pode adivinhar antecipadamente tais coisas sem usar um debugger para determinar a causa real do erro.

  • Indique na sua mensagem de e-mail que você conferiu o manual de referência e o arquivo de mensagens para que outros saibam que você tentou solucionar o problema.

  • Se você obter um parse error, por favor confira sua sintaxe com atenção! Se você não conseguiu encontrar nada errado com ela, é extremamente provável que que sua versão corrente do MySQL não suporte a consulta que você está utilizando. Se você estiver usando a versão recente e o manual em http://www.mysql.com/documentation/manual.php não cobrir a sintaxe que você estiver usando, o MySQL não suporta sua consulta. Neste caso, suas unicas opções são implementar você mesmo a sintaxe ou enviar uma mensagem para e perguntar por uma oferta para implementá-lo!

    Se o manual cobrir a sintaxe que você estiver usando, mas você tiver uma versão mais antiga do MySQL, você deverá conferir o histórico de alterações do MySQL para ver quando a sintaxe foi implementada. Neste caso, você tem a opção de atualizar para uma nova versão do MySQL. See Apêndice D, Histórico de Alterações do MySQL.

  • Se você tiver um problema do tipo que seus dados aparecem corrompidos ou você obtem erros quando você acessa alguma tabela em particular, você deverá primeiro checar depois tentar reparar suas tabelas com myisamchk ou CHECK TABLE e REPAIR TABLE. See Capítulo 4, Administração do Bancos de Dados MySQL.

  • Se você frequentemente obtém tabelas corrompidas, você deve tentar encontrar quando e porque isto acontece! Neste caso, o arquivo mysql-data-directory/'hostname'.err deve conter algumas informações sobre o que aconteceu. See Secção 4.10.1, “O Log de Erros”. Por favor forneça qualquer informação relevante deste arquivo no seu relatório de erro! Normalmente o mysqld NUNCA deverá danificar uma tabela se nada o finalizou no meio de uma atualização! Se você puder encontrar a causa do fim do mysqld, se torna muito mais fácil para nós fornecemos a você uma solução para o problema! See Secção A.1, “Como Determinar o Que Está Causando Problemas”.

  • Se possível, faça o download e instale a versão mais recente do MySQL para saber se ela resolve ou não o seu problema. Todas versões do MySQL são muito bem testadas e devem funcionar sem problemas! Acreditamos em deixar tudo, o mais compátivel possível com as versões anteriores, e você conseguirá mudar de versões MySQL em minutos! See Secção 2.2.4, “Qual versão do MySQL deve ser usada”.

Se você é um cliente de nosso suporte, por favor envio o seu relatório de erros em para tratamento de alta prioritário, bem como para a lista de mensagens apropriada para ver se mais alguém teve experiências com (e talvez resolveu) o problema.

Para informações sobre relatar erros no MyODBC, veja Secção 12.2.4, “Como Relatar Problemas com o MyODBC”.

Para soluções a alguns problemas comuns, veja See Apêndice A, Problemas e Erros Comuns.

Quando respostas são enviadas para você individualmente e não para a lista de mensagens, é considerado boa etiqueta resumir as respostas e enviar o resumo para a lista de mensagens para que outras possam ter o benefício das respostas que você recebeu que ajudaram a resolver seu problema!

1.7.1.4. Guia para responder questões na lista de discussão

Se você considerar que sua respota possa ter um amplo interesse, você pode querer postá-la para a lista de mensagens em vez de responder diretamente para a pessoa que perquntou. Tente deixar sua resposta da forma mais genérica possível para que outras pessoas além da que postou a pergunda possam se beneficiar dela. Quando você postar para a lista, por favor tenha certeza que sua resposta não é uma réplica de uma resposta anterior.

Tente resumir a parte essencial da questão na sua resposta, não se sinta obrigado a citar a mensagem original inteira.

Por favor não poste mensagens a partir de seu browser com o modo HTML ligado! Muitos utilizadores não leem e-mail com browser!

1.7.2. Suporte a Comunidade MySQL Atrvés do IRC (Internet Relay Chat)

Em adição as diversas listas de email, você pode pessoas experientes da comunidade no IRC (Internet Relay Chat). Estes são os melhores canais atualmente conhecidos por nós:

  • freenode (veja http://www.freenode.net/ para servidores)

    • #mysql A princípio são questões sobre o MySQL, mas dúvidas sobre outros bancos de dados e SQL são bemvindas.

    • #mysqlphp Questões sobre MySQL+PHP, uma combinação popular.

    • #mysqlperl Questões sobre MySQL+Perl, outra combinação popular.

  • EFnet (veja http://www.efnet.org/ para servidores)

    • #mysql Questões sobre MySQL.

Se você está procurando por programas clientes de IRC para conectar a uma rede IRC, dê uma olhada no X-Chat (http://www.xchat.org/). X-Chat (licença GPL) está disponível para as plataformas Unix e Windows