Manual de Referencia do MySQL

Este e o manual de referencia do MySQL para a versao 3.23.52. Como o desenvolvimento do
MySQL esta em andamento, este manual ´e atualizado constantemente. Existe uma grande
chance desta versao nao estar atualizada, a menos que voce a esteja lendo online. A versao
mais recente deste manual esta disponivel em http://www.mysql.com/documentation/ em
varios formatos diferentes. Se voce esta tendo dificuldades para encontrar as informacoes no
manual, tente a versao online em http://www.mysql.com/documentation/manual.php.
MySQL ´e um servidor robusto de bancos de dados SQL (Structured Query Language –
Linguagem Estruturada para Pesquisas) muito r´apido, multi-tarefa e multi-usu´ario.
MySQL ´e um software livre. Licenciado sob a GNU GENERAL PUBLIC LICENSE
http://www.gnu.org/. See hundefinedi [Licensing and Support], page hundefinedi.
A home page do MySQL fornece as ´ultimas informa¸c˜oes sobre o MySQL.
A seguinte lista descreve algumas se¸c˜oes ´uteis do manual:
• Para informa¸c˜oes sobre a empresa por tr´as do MySQL, veja hundefinedi [What is
MySQL AB], page hundefinedi.
• Para discuss˜oes das capacidades do MySQL, veja hundefinedi [Features], page hundefined
i.
• Para instru¸c˜oes de instala¸c˜ao, veja hundefinedi [Installing], page hundefinedi.
• Para dicas sobre a portabilidade do MySQL para novas arquiteturas ou sistemas operacionais,
veja hundefinedi [Porting], page hundefinedi.
• Para informa¸c˜oes sobre a atualizacao da vers˜ao 3.22, veja hundefinedi [Upgrading-from-
3.22], page hundefinedi.
• Para um tutorial de introdu¸c˜ao ao MySQL, veja hundefinedi [Tutorial], page hundefined
i.
• Para exemplos de SQL e informa¸c˜oes sobre avalia¸c˜oes de desempenho, veja o diret´orio
de benchmarks (‘sql-bench’ na distribui¸c˜ao).
• Para o hist´orico de novos recursos e corre¸c˜oes de erros, veja hundefinedi [News],
page hundefinedi.
• Para uma lista de erros atualmente conhecidos ou mal-funcionamento, veja hundefinedi
[Bugs], page hundefinedi.
• Para projetos futuros, veja hundefinedi [TODO], page hundefinedi.
• Para ver a lista de todos os colaboradores para este projeto, veja hundefinedi [Credits],
page hundefinedi.
IMPORTANTE:
Relat´orios de erros (tamb´em chamados bugs), bem como quest˜oes e coment´arios, devem
ser enviados para a lista de discuss˜ao em mysql@lists.mysql.com. See hundefinedi [Bug
reports], page hundefinedi. O script mysqlbug deve ser usado para gerar comunicados de
erros.
Em distribui¸c˜oes fonte, o script mysqlbug pode ser encontrado no diret´orio ‘scripts’. Para
distribui¸c˜oes bin´arias, o mysqlbug pode ser encontrado no diret´orio ‘bin’. Se vocˆe encontrou
um erro de seguran¸ca no MySQL, vocˆe deve enviar um email para security@mysql.com.

Se vocˆe tem alguma sugest˜ao relacionada a acr´escimos ou corre¸c˜oes neste manual, por favor,
envie-a para a equiope do manual em docs@mysql.com.
Este ´e o manual de referˆencia; ele n˜ao fornece instru¸c˜oes gerais sobre SQL ou conceitos de
bancos de dados relacionais. Se vocˆe deseja informa¸c˜oes gerais sobre SQL, veja hundefinedi
[General-SQL], page hundefinedi. Para livros que focam mais especificamente em MySQL,
veja hundefinedi [MySQL-Books], page hundefinedi.
1.1 MySQL, MySQL AB e Open Source
1.1.1 O que ´e MySQL
MySQL, o mais popular banco de dados SQL Open Source, ´e fornecido pela MySQL AB.
MySQL AB ´e uma empresa comercial cujo neg´ocios ´e fornecer servi¸cos relacionados ao
banco de dados MySQL. See hundefinedi [What is MySQL AB], page hundefinedi.
O MySQL ´e um sistema gerenciador de bancos de dados.
Um banco de dados ´e uma cole¸c˜ao de dados estruturados. Ele pode ser qualquer
coisa desde uma simples lista de compras a uma galeria de imagens ou
a grande quantidade de informa¸c˜ao da sua rede coorporativa. Para adicionar,
acessar, e processar dados armazenados em um banco de dados digital, vocˆe necessita
de um sistema gerenciador de bancos de dados semelhante ao MySQL.
Como os computadores s˜ao muito bons em lidar com grandes quantidades de
dados, o gerenciamento de bancos de dados funciona como a engrenagem central
na computa¸c˜ao, como utilit´arios independentes, ou como partes de outras
aplica¸c˜oes.
O MySQL ´e um sistema gerenciador de bancos de dados relacional.
Um banco de dados relacional armazena dados em tabelas separadas embora
todos os dados estjam armazendos em um s´o local. Isso proporciona velocidade
e flexibilidade. As tabelas s˜ao unidas por rela¸c˜oes definidas tornando poss´ivel
combinar dados de diferentes tabelas nas requisi¸c˜oes. A parte SQL do MySQL
atende pela “Linguagem estruturada de pesquisas” – a linguagem padr˜ao mais
comum usada para acessar bancos de dados.
O ´e MySQL um software Open Source.
Open Source garante para qualquer pessoa o uso ou modifica¸c˜ao do software.
Qualquer pessoa pode fazer download do MySQL pela Internet e us´a-lo sem
ˆonus. Qualquer pessoa dedicada pode estudar o c´odigo fonte e alter´a-lo para
adequ´a-lo `as suas necessidades. O MySQL usa a GPL (Licen¸ca P´ublica Geral
GNU) http://www.gnu.org, para definir o que vocˆe pode e n˜ao pode fazer
com o software em diferentes situa¸c˜oes. Se sentir desconforto com a GPL ou
precisair embutir o MySQL numa aplica¸c˜ao comercial vocˆe pode adquirir a
vers˜ao comercial licenciada conosco.
Por que usar o MySQL?
O MySQL ´e extremamente r´apido, confi´avel, e f´acil de usar. Se isto ´e o que
vocˆe est´a procurando, vocˆe deveria experiment´a-lo. MySQL tamb´em tem um
conjunto de recursos muito pr´aticos desenvolvidos com a coopera¸c˜ao de nossos

usu´arios. Vocˆe pode encontrar comparativos de performance do MySQL com
outros gerenciadores de bancos de dados na nossa p´agina de benchmark See
hundefinedi [MySQL Benchmarks], page hundefinedi.
MySQL foi desenvolvido originalmente para lidar com bancos de dados muito
grandes de maneira muito mais r´apida que as solu¸c˜oes existentes e tem sido
usado em ambientes de produ¸c˜ao de alta demanda por diversos anos de maneira
bem sucedida. Apesar de estar em constante desenvolvimento, o MySQL hoje
oferece um rico e proveitoso conjunto de fun¸c˜oes. A conectividade, velocidade,
e seguran¸ca fazem com que o MySQL seja altamente adapt´avel para acessar
bancos de dados na Internet.
As caracter´isticas t´ecnicas do MySQL
Para informa¸c˜oes t´ecnicas avan¸cadas, veja hundefinedi [Reference], page hundefined
i. MySQL ´e um sistema cliente/servidor que consiste de um servidor
SQL multi-tarefa que suporta acessos diferentes, diversos programas clientes e
bibliotecas, ferramentas administrativas e diversas interfaces de programa¸c˜ao.
Tamb´em concedemos o MySQL como uma biblioteca multi-tarefa que vocˆe pode
ligar `a sua aplica¸c˜ao para chegar a um produto mais r´apido, menor e mais
f´acilmente gerenci´avel.
MySQL tem muitos softwares de colaboradores dispon´ivel.
´E
bem prov´avel que sua aplica¸c˜ao ou linguagem favorita j´a suporte o MySQL.
A pron´uncia oficial do MySQL ´e “Mai Ess Que Ell” (e n˜ao MAI-SEQUEL). Mas tentamos
n˜ao corrigir as pessoas que dizem MAI-SEQUEL.
1.1.2 O que ´e a MySQL AB
MySQL AB ´e uma empresa sueca que pertence e ´e administrada pelos fundadores do MySQL
e principais desenvolvedores. Nos dedicamos a desenvolver e disseminar nosso banco de
dados para novos usu´arios. MySQL AB ´e dona do direito autoral referente ao c´odigo
fonte do servidor MySQL e a marca comercial MySQL. Uma quantidade significativa dos
rendimentos de nossos servi¸cos ´e destinada ao desenvolvimento do MySQL. See hundefinedi
[What-is], page hundefinedi.
A MySQL AB tem obtido lucros a partir do MySQL desde o in´icio. N´os n˜ao recebemos
capital externo, e todo o dinheiro foi arrecadado por n´os.
Estamos procurando parceiros que gostariam de apoiar o desenvolvimento do MySQL para
que possamos acelerar o ritmo de desenvolvimento. Se vocˆe est´a interessado, envie um
e-mail para partner@mysql.com.
Atualmente, a MySQL AB tem mais de 20 funcion´arios (http://www.mysql.com/development/team.html)
na sua folha de pagamento e est´a crescendo rapidamente.
Nossas principais fontes de recursos s˜ao:
• Suporte comercial de alta qualidade para o MySQL fornecido pelos pr´oprios desenvolvedores
do MySQL. Se vocˆe tem interesse em adquirir um contrato de suporte, por
favor visite https://order.mysql.com/ para ver op¸c˜oes de suporte ou para solicitar
suporte.

****************************************************

1.1.3 Sobre este manual
Este manual ´e dispon´ivel atualmente em vers˜oes Texinfo, texto, Info, HTML, PostScript
e PDF. O documento original est´a no formato Texinfo. A vers˜ao HTML ´e produzida
automaticamente usando uma vers˜ao modificada do texi2html. A vers˜ao texto e Info s˜ao
produzidas com makeinfo. A vers˜ao PostScript ´e produzida usando texi2dvi e dvips. A
vers˜ao PDF ´e produzida com pdftex.
O manual original (em ingles) ´e escrito e mantido por David Axmark, Michael (Monty)
Widenius, Jeremy Cole e Paul DuBois. Para outros colaboradores, veja hundefinedi [Credits],
page hundefinedi.
1.1.4 Conven¸c˜oes usadas neste manual.
Este manual usa algumas conven¸c˜oes tipogr´aficas:
constant Fonte de largura fixa ´e usada para nomes de comandos e op¸c˜oes; express˜oes
SQL; bancos de dados, nomes de tabelas e colunas; c´odigo C e Perl; e vari´aveis
de ambiente. Exemplo: “Para ver como o mysqladmin funciona, execute-o com
a op¸c˜ao –help.”
‘filename’
Fonte de largura fixa com aspas ´e usada para nomes de arquivos e caminhos.
Exemplo: “ distribui¸c˜ao ´e instalada sobre o diret´orio ‘/usr/local’.”
‘c’ Fonte de largura constante com aspas ´e tamb´em usada para indicar sequˆencias
de caracteres. Exemplo: “Para especificar uma m´ascara, use o caractere ‘%’.”
italic Fonte It´alica ´e usada para dar ˆenfase, como aqui.
boldface Fonte em Negrito ´e usada para destacar nomes privilegiados (por exemplo,
“n˜ao permita o privil´egio a process levemente”) e ocasionalmente indicar ˆenfase
especial.
Quando um comando deve ser executado por um programa, ele ´e indicado por um prompt
antes do comando. Por exemplo, shell> ´e um prompt de comando para indicar o seu shell
atual e mysql> indica um prompt de comando do cliente mysql;
shell> digite um comando shell aqui
mysql> digite um comando mysql aqui
Comandos Shell s˜ao mostrados usando a sintaxe do Shell Bourne. Se vocˆe usa um shell do
estilo csh, pode ser necess´ario alterar algum de seus comandos. Por exemplo, a sequˆencia
para configurar uma vari´avel de ambiente e rodar um comando que se parece como abaixo
na sintaxe Bourne Shell:
shell> NOMEVAR=valor algum_comando
Para csh, execute a sequˆencia desta forma:
shell> setenv NOMEVAR valor
shell> algum_comando
Frequentemente, bancos de dados, tabelas, e nomes de colunas devem ser substitu´idos nos
comandos. Para indicar que as substitui¸c˜oes s˜ao necess´arias, este manual usa nome_db,
nome_tbl e nome_col. Por exemplo, vocˆe pode ver uma express˜ao assim:

mysql> SELECT nome_col FROM nome_bd.nome_tbl;
Isso significa que se vocˆe estiver trabalhando numa express˜ao similar, poder´a fornecer seu
pr´oprio banco de dados, tabela e nomes de colunas, que possivelmente se parecer´a com isto:
mysql> SELECT nome_autor FROM biblio_bd.lista_autor;
Express˜oes SQL podem ser escritas em mai´usculas ou min´usculas. Quando este manual
mostra uma express˜ao SQL, ma´isculas s˜ao usadas para as palavras-chave em quest˜ao (para
enfatiz´a-las) e min´usculas s˜ao usadas para o resto da express˜ao. Veja o exemplo na express˜ao
SELECT a seguir :
mysql> SELECT count(*) FROM nome_tbl;
Por outro lado, em uma discuss˜ao sobre a fun¸c˜ao COUNT(), a mesma express˜ao pode ser
escrita assim:
mysql> select COUNT(*) from nome_tbl;
N˜ao exisitindo o interesse em destacar, todas as palavras-chave s˜ao escritas uniformemente
em mai´usculas.
Em descri¸c˜oes de sintaxe, colchetes (‘[’ e ‘]’) s˜ao usados para indicar palavras ou cl´ausulas
opcionais:
DROP TABLE [IF EXISTS] nome_tbl
Quando elementos da sintaxe possuem mais de uma alternativa, elas s˜ao separados por
barras verticais (‘|’). Quando um menbro de um conjuntop de op¸c˜oes pode ser escolhido,
as alternativas s˜ao listadas em colchetes (‘[’ e ‘]’):
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
Quando um membro de um conjunto de op¸c˜oes deve ser selecionado, as alternativas s˜ao
listadas em colchetes (‘{’ e ‘}’):
{DESCRIBE | DESC} nome_tabela {nome_campo | wild}
1.1.5 Hist´oria do MySQL
Quando come¸camos, t´inhamos a inten¸c˜ao de usar o mSQL para conectar `as nossas tabelas
utilizando nossas r´apidas rotinas de baixo n´ivel (ISAM). Entretanto, depois de alguns testes,
chegamos a conclus˜ao que o mSQL n˜ao era r´apido e nem flexivel o suficiente para nossas
necessidades. Isto resultou em uma nova interface SQL para nosso banco de dados, mas
com praticamente a mesma Interface API do mSQL. Esta API foi escolhida para facilitar a
portabilidade para c´odigos de terceiros.
A deriva¸c˜ao do nome MySQL n˜ao ´e bem definida. Nosso diret´orio base e um grande n´umero
de nossas bibliotecas e ferramentas sempre tiveram o prefixo “my” por pelo menos 10 anos.
A filha de Monty, alguns anos mais nova que o MySQL, tamb´em ganhou o nome My. Qual
das duas originou o nome do MySQL continua sendo um mist´erio, mesmo para n´os.
1.1.6 As principais caracter´isticas do MySQL
A seguinte lista descreve algumas das caracter´isticas mais importantes do MySQL:
• Suporte total a multi-threads usando threads diretamente no kernel. Isto significa que
se pode facilmente usar m´ultiplas CPUs, se dispon´ivel.

C, C++, Eiffel, Java, Perl, PHP, Python e Tcl APIs. See hundefinedi [Clients], page hundefined
i.
• Funciona em diversas plataformas. See hundefinedi [Which OS], page hundefinedi.
• Aceita diversos tipos de campos: inteiros de 1, 2, 3, 4 e 8 bytes com e sem sinal, FLOAT,
DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET,
and ENUM types. See hundefinedi [Column types], page hundefinedi.
• Joins muito r´apidas usando uma multi-join de leitura ´unica otimizada.
• Completo suporte a operadores e fun¸c˜oes nas partes SELECT e WHERE das consultas. Por
exemplo:
mysql> SELECT CONCAT(first_name, ” “, last_name) FROM nome_tabela
WHERE income/dependents > 10000 AND age > 30;
• Fun¸c˜oes SQL s˜ao implementadas atrav´es de uma biblioteca de classes altamente
otimizada e com o m´aximo de performance. Geralmente n˜ao h´a nenhuma aloca¸c˜ao de
mem´oria depois da inicializa¸c˜ao da pesquisa.
• Suporte pleno `as cl´ausulas SQL GROUP BY e ORDER BY. Suporte para fun¸c˜oes de agrupamento
(COUNT(), COUNT(DISTINCT …), AVG(), STD(), SUM(), MAX() e MIN()).
• Suporte para LEFT OUTER JOIN e RIGHT OUTER JOIN e sintaxes ANSI, SQL e ODBC.
• Vocˆe pode misturar tabelas de bancos de dados diferentes na mesma pesquisa (como
na vers˜ao 3.22).
• Um sistema de privil´egios e senhas que ´e muito flex´ivel, seguro e que permite verifica¸c˜ao
baseada em esta¸c˜oes/m´aquinas. Senhas s˜ao seguras porque todo o tr´afico de senhas ´e
criptografado quando vocˆe se conecta ao servidor.
• Suporte ao ODBC (Open-DataBase-Connectivity) para Win32 (com fonte aberto). Todas
fun¸c˜oes ODBC 2.5 e muitas outras. Por exemplo, vocˆe pode usar o MS Access para
conectar ao seu servidor MySQL. See hundefinedi [ODBC], page hundefinedi
• Tabelas de disco baseadas em ´arvores-B extremamente r´apidas com compress˜ao de
´indices.
• S˜ao permitidos at´e 32 ´indices por tabela. Cada ´indice pode ser composto de 1 a 16
colunas ou partes de colunas. O tamanho m´aximo do ´indice ´e de 500 bytes (isto pode
ser alterado na compila¸c˜ao do MySQL). Um ´indice pode usar o prefixo de campo com
um tipo CHAR ou VARCHAR.
• Registros de tamanhos fixos ou vari´aveis.
• Tabelas hash em mem´oria que s˜ao usadas como tabelas tempor´arias.
• Lida com bancos de dados enormes. N´os estamos usando MySQL com alguns bancos
de dados que cont´em 50.000.000 registros e n´os sabemos de usu´arios que usam MySQL
com 60.000 tabelas e aproximadamente 5.000.000.000 de linhas.
• Todas as colunas tˆem valores padr˜ao. Vocˆe pode usar INSERT para inserir um subconjunto
de colunas de tabelas; aquelas colunas que n˜ao possuem valores fornecidos
explicitamente usam os seus valores padr˜oes.
• Utiliza o GNU Automake, Autoconf, e Libtool para portabilidade.
• Escrito em C e C++. Testado com um amplo faixa de compiladores diferentes.
• Um sistema de aloca¸c˜ao de mem´oria muito r´apido e baseado em processo(thread).

N˜ao existem furos ou problemas de mem´oria. O MySQL foi testado com o Purify, um
detector de problemas de mem´oria comercial.
• Inclui o myisamchk, um utilit´ario muito r´apido para checagem, otimiza¸c˜ao e reparo de
tabelas. Toda a funcionalidade do myisamchk est´a, tamb´em, dispon´ivel pela interface
SQL. See hundefinedi [MySQL Database Administration], page hundefinedi.
• Suporte total para v´arios conjuntos de caracteres, que incluem ISO-8859-1 (Latin1),
big5, ujis e mais. Por exemplo, os caracteres Escandinavos ‘°a’, ‘¨a’ e ‘¨o’ s˜ao permitidos
em nomes de tabelas e colunas.
• Todos os dados s˜ao armazenados no conjunto de caracteres escolhido. Todas as compara
¸c˜oes em colunas de sequenciascaso-insensitivo.
• A ordena¸c˜ao ´e feita de acordo com o conjunto de caracteres escolhido (o modo sueco
por padr˜ao). ´E poss´ivel alterar isso quando o servidor MySQL ´e iniciado. Para ver um
exemplo de v´arias ordena¸c˜oes avan¸cadas, procure pelo c´odigo de ordena¸c˜ao Tcheca.
O MySQL suporta diversos conjuntos de caracteres que podem ser especificados em
tempo de compila¸c˜ao e execu¸c˜ao.
• Apelidos em tabelas e colunas s˜ao dispon´iveis como definidos no padr˜ao SQL92.
• DELETE, INSERT, REPLACE, e UPDATE retornam o n´umero de linhas que foram alteradas
(afetadas). ´E poss´ivel retornar o n´umero de linhas com padr˜ao coincidentes configurando
um parˆametro quando estiver conectando ao servidor.
• Nomes de fun¸c˜oes n˜ao comflitam com nomes de tabelas ou colunas. Por exemplo, ABS
´e um nome de campo v´alido. A ´unica restri¸c˜ao ´e que para uma chamada de fun¸c˜ao,
espa¸cos n˜ao s˜ao permitidos entre o nome da fun¸c˜ao e o ‘(’ que o segue. See hundefinedi
[Reserved words], page hundefinedi.
• Todos os programas MySQL podem ser chamados com as op¸c˜oes –help ou -? para
obter ajuda online.
• O servidor pode apresentar mensagem de erros aos clientes em v´arias l´inguas. See
hundefinedi [Languages], page hundefinedi.
• Os clientes podem se conectar ao servidor MySQL usando sockets(tomadas) TCP/IP,
sockets Unix, ou Named Pipes (NT).
• O comando espec´ifico do MySQL SHOW pode ser usado para devolver informa¸c˜oes sobre
bancos de dados, tabelas e´indices. O comando EXPLAIN pode ser usado para determinar
como o otimizador resolve a consulta.
1.1.7 O MySQL ´e est´avel?
Esta se¸c˜ao discute as quest˜oes “Quanto est´avel ´e o MySQL?” e “Posso depender do MySQL
neste projeto?” Tentaremos deixar claro alguns assuntos e responder algumas das quest˜oes
mais importantes que parecem interessar muitas pessoas. Esta se¸c˜ao foi colocada juntamente
com a informa¸c˜ao colhida da lista de discuss˜ao (que ´e muito ativa em relatar erros).
Na TcX, o MySQL vem trabalhando sem problema em nossos projetos desde o meio de 1996.
Quando o MySQL foi disponibilizado para um p´ublico maior, n´os fomos notificados que
existiam algumas peda¸cos de “c´odigo sem testes” que foram sendo rapidamente encontrados
pelos novos usu´arios que criavam pesquisas de uma maneira diferente das que n´os faz´iamos.
Cada nova release teve menos problemas de portabilidade que o anterior (mesmo com os
novos recursos implementados em cada uma destas vers˜oes)

Cada release do MySQL foi sendo usado, e ocorrem problemas somente quando usu´arios
come¸cam a usar as “´areas cinzentas.” Naturalmente, usu´arios externos n˜ao sabem o que
s˜ao as ´areas cinzentas; esta se¸c˜ao tenta indicar aquelas que s˜ao conhecidas atualmente. As
descri¸c˜oes lidam com a Vers˜ao 3.23 do MySQL. Todos os erros conhecidos e relatados s˜ao
reparados na ´ultima vers˜ao, com a exce¸c˜ao dos bugs listados na se¸c˜ao de erros, os quais s˜ao
relacionados ao desenho. See hundefinedi [Bugs], page hundefinedi
O MySQL ´e escrito em m´ultiplas camadas e diferentes m´odulos independentes. Estes
m´odulos est˜ao listados abaixo com indica¸c˜oes de qu˜ao bem-testado foi cada um deles.
O handler de tabelas ISAM — Est´avel
Gerencia armazenamento e restaura¸c˜ao de todos os dados no MySQL Vers˜ao
3.22 e anteriores. Em todas vers˜oes do MySQL, nunca foi relatado um s´o erro
neste c´odigo. A ´unica forma conhecida de corromper uma tabela ´e matar o
servidor no meio de uma atualiza¸c˜ao. Mesmo isto n˜ao ´e suficiente para destruir
qualquer dados que n˜ao possam ser recuperados, porque todos os dados s˜ao
atualizados para o disco entre cada query. N˜ao existe nenhum relato de erros
sobre perda de dados causados por bugs no MySQL.
O handler de tabelas MyISAM — Est´avel
Este ´e novo na vers˜ao do MySQL 3.23. ´E amplamente baseado nos c´odigos de
tabelas ISAM mas possui diversos recursos novos e uteis.
O parser e o analisador l´exico — Est´avel
N˜ao existem relatos de erros neste sistema h`a muito tempo.
O c´odigo C cliente — Est´avel
N˜ao existem problemas conhecidos. Em vers˜oes mais antigas que a 3.20, existiam
algumas limita¸c˜oes no tamanho do buffer de envio/recebimento. Como
na vers˜ao 3.21, o tamanho do buffer agora ´e dinˆamico podendo chegar a um
padr˜ao de 16M.
Programas clientes padr˜oes — Est´avel
Inclui mysql, mysqladmin, mysqlshow, mysqldump, e mysqlimport.
SQL B´asico — Est´avel
O manipulador do sistema de fun¸c˜oes, da classe string e da memoria dinamica
do SQL basico. N˜ao existem relatos de erros neste sistema.
Otimizador de pesquisas — Est´avel
Otimizador do Range — Est´avel
Otimizador de Join — Est´avel
Locking — Gamma
Esse m´odulo ´e muito dependente do sistema. Em alguns sistemas existem certos
problemas por utilizar o locking padr˜ao do SO (fcntl(). Em alguns casos, vocˆe
pode executar o daemon do MySQL com o parˆametro –skip-locking. S˜ao
conhecidos alguns problemas ocorridos em alguns sistemas Linux e no SunOS
quando utiliza-se sistemas de arquivos montados em NFS.
Threads Linux — Est´avel
O maior problema encontrado neste m´odulo foi com a chamada fcntl(), que
´e corrigida usando a op¸c˜ao –skip-locking com o mysqld. Algumas pessoas

relataram travamentos com a vers˜ao 0.5. Se vocˆe planeja usar mais de 1000
conex˜oes simultˆaneas, o LinuxThreads dever´a ser recompilado. Embora seja
poss´ivel rodar todas essas conex˜oes com o LinuxThreads padr˜ao (de qualquer
forma, vocˆe nunca poder´a ir acima de 1021 conex˜oes), o espa¸co de pilha padr˜ao
de 2MB deixa a aplica¸c˜ao inst´avel, e iremos reproduzir um coredump depois de
criar 1021 conex˜oes. See hundefinedi [Linux], page hundefinedi
Solaris 2.5+ pthreads — Est´avel
Utilizamos isto para todo nosso trabalho de produ¸c˜ao.
MIT-pthreads (Outros Sistemas) — Est´avel
N˜ao h´a nenhum erro relatado desde da vers˜ao 3.20.15 e nenhum erro conhecido
desde a cers˜ao 3.20.16. Em alguns sistemas, h´a um “mal funcionamento” onde
algumas operacoes s˜ao muito lentas (uma parada de 1/20 segudos e feita entre
cada consulta). ´E claro que MIT-pthreads pode deixar tudo um pouco lento,
mas as instru¸c˜oes SELECT baseada em indice geralmente s˜ao feitas uma de cada
vez, ent˜ao elas n˜ao precis˜ao ser travadas com “mutex locking” nas threads.
Outras implementa¸c˜oes de threads — Beta –
A portabilidade para outros sistemas ainda ´e muito nova e podem existir erros,
possivelmente no MySQL, mas a maioria na pr´opria implementa¸c˜ao das threads.
LOAD DATA …, INSERT … SELECT — Est´avel
Algumas pessoas achavam que haviam encontrado bugs aqui, mas geralmente
s˜ao mal-entendidos com rela¸c˜ao ao funcionamento desses m´odulos. Por favor
confira o manual antes de relatar problemas!
ALTER TABLE — Est´avel
Pequenas altera¸c˜oes na vers˜ao 3.22.12.
DBD — Est´avel
Atualmente mantido por Jochen Wiedmann (wiedmann@neckar-alb.de).
Obrigado!
mysqlaccess — Est´avel
Escrito e mantido por Yves Carlier (Yves.Carlier@rug.ac.be). Obrigado!
GRANT — Est´avel
Grandes altera¸c˜oes feitas no MySQL Vers˜ao 3.22.12.
MyODBC (Usa ODBC SDK 2.5) — Gamma
Parece funcionar bem com muitos programas.
Replica¸c˜ao – Beta / Gamma
Ainda estamos trabalhando na replica¸c˜ao, portanto n˜ao espere que isso ir´a ser
s´olido como uma rocha ainda. Por outro lado, alguns usu´arios MySQL j´a est˜ao
usando isto com ´otimos resultados.
Tabelas BDB – Beta
O c´odigo de Bancos de dados Berkeley ´e muito est´avel, mas n´os ainda estamos
melhorando a interface entre o MySQL e as tabelas BDB, portando ele ir´a levar
algum tempo at´e ser testado como os outros tipos de tabelas foram.

Tabelas InnoDB – Beta
Esta ´e uma adi¸c˜ao recente ao MySQL. Ela parece funcionar bem e pode ser usada
depois de alguns testes iniciais.
Recupera¸c˜ao autom´atica de tabelas MyISAM – Beta
Isso afeta somente o novo c´odigo que confere, na inicializa¸c˜ao do banco, se a
tabela foi fechada corretamente e executa uma conferˆencia/reparo autom´atico
da tabela em caso negativo.
MERGE de Tabelas – Beta / Gamma
O uso das chaves em MERGE de tabelas ainda n˜ao foi bem testado. A outra parte
do c´odigo MERGE foi muito bem testada.
FULLTEXT – Beta
A pesquisa textual aparenta funcionar, mas ainda n˜ao ´e amplamente usada.
MySQL AB fornece suporte por e-mail para clientes pagos, mas a lista de discuss˜ao MySQL
normalmente fornece respostas para quest˜oes comuns. Erros s˜ao normalmente corrigidos
com um patch; para erros s´erios, normalmente ´e lan¸cada uma nova release.
1.1.8 Qual o tamanho das tabelas que o MySQL pode suportar
A Vers˜ao 3.22 do MySQL tem suporte para tabelas com limite de tamanho at´e 4G. Com
o novo MyISAM no MySQL vers˜ao 3.23 o tamanho m´aximo foi extendido at´e 8 milh˜oes de
terabytes (2 ^ 63 bytes).
Lembre, entretando, que sistemas operacionais tem seu pr´oprio limite de tamanho para
arquivos. Seguem alguns exemplos:
Sistema Operacional Limite do tamanho do arquivo
Linux-Intel 32 bit 2G, 4G ou mais, depende da vers˜ao do
Linux
Linux-Alpha 8T (?)
Solaris 2.5.1 2G (possivelmente 4G com patch)
Solaris 2.6 4G
Solaris 2.7 Intel 4G
Solaris 2.7 ULTRA-SPARC 8T (?)
No Linux 2.2 vocˆe pode ter tabelas maiores que 2G usando o patch LFS para o sistema de
arquivos ext2. No Linux 2.4 j´a existem patches para o sistema de arquivos ReiserFS para
ter suporte a arquivos maiores.
Isto significa que o tamanho da tabela para o MySQL ´e normalmente limitado pelos sistemas
operacionais.
Por padr˜ao, tabelas do MySQL tˆem um tamanho m´aximo em torno de 4G. Vocˆe pode verificar
o tamanho m´aximo da tabela com o comando SHOW TABLE STATUS ou com o myisamchk
-dv nome_tabela See hundefinedi [SHOW], page hundefinedi.
Se vocˆe precisa de tabelas maiores que 4G (e seu sistema operacional suporta isto), vocˆe
pode configurar o AVG_ROW_LENGHT e o parˆametro MAX_ROWS quando vocˆe criar sua tabela.
See hundefinedi [CREATE TABLE], page hundefinedi. Vocˆe pode tamb´em alterar isso mais
tarde com ALTER TABLE. See hundefinedi [ALTER TABLE], page hundefinedi

Se sua tabela grande ser´a somente leitura, vocˆe poder´a usar o myisampack para unir e
comprimir v´arias tabelas em uma. mysisampack normalmente comprime uma tabela em
pelo menos 50%, portanto vocˆe pode obter, com isso, tabelas muito maiores. See hundefinedi
[myisampack], page hundefinedi
Uma op¸c˜ao ´e ignorar o limite de tamanho de arquivos do sistema operacional para arquivos
de dados MyISAM usando a op¸c˜ao RAID. See hundefinedi [CREATE TABLE], page hundefined
i.
Outra solu¸c˜ao pode ser a biblioteca MERGE inclu´ida, que lhe permite acessar uma cole¸c˜ao
de tabelas idˆenticas como se fosse apenas uma. See hundefinedi [MERGE], page hundefinedi
1.1.9 Compatibilidade com o ano 2000 (Y2K)
O MySQL n˜ao apresenta nenhum problema com o ano 2000 (Y2K compat´ivel)
• O MySQL usa fun¸c˜oes de tempo Unix e n˜ao tem problemas com datas at´e o ano 2069;
todos os anos de 2 d´igitos s˜ao estimados na escala 1970 at´e 2069; o que significa que
se vocˆe armazenar 01 numa coluna year, O MySQL o tratar´a como 2001.
• Todas as fun¸c˜oes de data do MySQL est˜ao no arquivo ‘sql/time.cc’ e codificadas com
muito cuidado para ser compat´ivel com o ano 2000.
• No MySQL vers˜ao 3.22 e posterior, o novo tipo de campo YEAR pode armazenar anos
0 e 1901 at´e 2155 em 1 byte e mostr´a-lo usando 2 ou 4 d´igitos.
Vocˆe pode ter problemas com aplica¸c˜oes que usem o MySQL de uma maneira que n˜ao
seja segura `a Y2K. Por exemplo, muitas aplica¸c˜oes antigas armazenam ou manipulam anos
usando valores de 2 digitos (que ´e amb´iguo) em vez de usar valores de 4 digitos. Este
problema pode ser composto por aplica¸c˜oes que usam valores como em 00 ou 99 como
indicadores de valores “perdidos”.
Infelizmente, estes problemas podem ser dif´iceis de resolver, porque diferentes aplica¸c˜oes
podem ser escritas por diferentes programadores, e cada um deles pode usar um diferentes
conjunto de conven¸c˜oes e fun¸c˜oes manipuladoras de data.
Aqui est´a uma demonstra¸c˜ao simples ilustrando que o MySQL n˜ao tem nenhum problema
com datas at´e o ano 2030:
mysql> DROP TABLE IF EXISTS y2k;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE y2k (date date, date_time datetime, time_stamp timestamp);
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO y2k VALUES
-> (“1998-12-31″,”1998-12-31 23:59:59”,19981231235959),
-> (“1999-01-01″,”1999-01-01 00:00:00”,19990101000000),
-> (“1999-09-09″,”1999-09-09 23:59:59”,19990909235959),
-> (“2000-01-01″,”2000-01-01 00:00:00”,20000101000000),
-> (“2000-02-28″,”2000-02-28 00:00:00”,20000228000000),
-> (“2000-02-29″,”2000-02-29 00:00:00”,20000229000000),
-> (“2000-03-01″,”2000-03-01 00:00:00”,20000301000000),
-> (“2000-12-31″,”2000-12-31 23:59:59”,20001231235959),
-> (“2001-01-01″,”2001-01-01 00:00:00”,20010101000000),

-> (“2004-12-31″,”2004-12-31 23:59:59”,20041231235959),
-> (“2005-01-01″,”2005-01-01 00:00:00”,20050101000000),
-> (“2030-01-01″,”2030-01-01 00:00:00”,20300101000000),
-> (“2050-01-01″,”2050-01-01 00:00:00”,20500101000000);
Query OK, 13 rows affected (0.01 sec)
Records: 13 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM y2k;
+————+———————+—————-+
| date | date_time | time_stamp |
+————+———————+—————-+
| 1998-12-31 | 1998-12-31 23:59:59 | 19981231235959 |
| 1999-01-01 | 1999-01-01 00:00:00 | 19990101000000 |
| 1999-09-09 | 1999-09-09 23:59:59 | 19990909235959 |
| 2000-01-01 | 2000-01-01 00:00:00 | 20000101000000 |
| 2000-02-28 | 2000-02-28 00:00:00 | 20000228000000 |
| 2000-02-29 | 2000-02-29 00:00:00 | 20000229000000 |
| 2000-03-01 | 2000-03-01 00:00:00 | 20000301000000 |
| 2000-12-31 | 2000-12-31 23:59:59 | 20001231235959 |
| 2001-01-01 | 2001-01-01 00:00:00 | 20010101000000 |
| 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 |
| 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 |
| 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 |
| 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 |
+————+———————+—————-+
13 rows in set (0.00 sec)
Isto mostra que os tipos DATE e DATETIME n˜ao apresentar˜ao problemas com datas futuras
(eles ir˜ao conseguir trabalhar com datas at´e o ano 9999).
O tipo TIMESTAMP, que ´e usado para armazenar a hora atual, tem um alcance somente at´e
2030-01-01. TIMESTAMP tem um alcance de 1970 at´e 2030 em m´aquinas 32-bits (valor com
sinal). Em m´aquinas de 64-bits ele pode trabalhar com datas at´e 2106 (valor sem sinal).
Mesmo apesar do MySQL ser compat´ivel com o ano 2000, ´e de sua responsabilidade forbnecer
datas que n˜ao sejam amb´iguas. Veja hundefinedi [Y2K issues], page hundefinedi para
regras do MySQL para lidar com entrada de datas amb´iguas (datas contendo valores de ano
com 2 d´igitos)
1.2 Fontes de Informa¸c˜oes Sobre MySQL
1.2.1 Livros sobre o MySQL
Para informa¸c˜oes mais recentes sobre livros, com coment´arios dos usu´arios, por favor visite
http://www.mysql.com/portal/books/html/index.html.
Enquanto este manual ainda for o lugar certo para informa¸c˜oes t´ecnicas atualizadas, seu
objetivo principal ser´a conter tudo que ´e conhecido sobre o MySQL. Ao mesmo tempo ´e
interessante ter um livro para ler na cama ou enquanto vocˆe viaja. Segue aqui uma lista de
livros sobre MySQL e assuntos relacionados (em Inglˆes).

Comprando um livro atrav´es dos hyperlinks fornecidos aqui vocˆe estar´a contribuindo para
o desenvolvimento do MySQL.
MySQL
Dispon´ivel em Barnes and Noble
Editor New Riders
Autor Paul DuBois
Data de Publica¸c˜ao 1st Edition December 1999
ISBN 0735709211
P´aginas 800
Pre¸co $49.99 US
Exemplos para Download samp_db distribution
Errata are available here
Revisado por Michael “Monty” Widenius, Moderador do MySQL.
Em MySQL, Paul DuBois introduz a vocˆe um guia completo para um dos mais populares
bancos de dados relacionais. Paul tem contribu´ido para a documenta¸c˜ao online para o
MySQL e ´e um membro ativo da comunidade MySQL. O principal desenvolvedor doMySQL,
Monty Widenius, e uma rede de seus companheiros desenvolvedores revisaram o manuscrito,
e forneceram a Paul o tipo de discernimento que ningu´em poderia fornecer.
Ao inv´es de simplesmente dar uma vi˜ao geral do MySQL, Paul o ensina grande parte de
seus conhecimentos. Atrav´es de duas tabelas exemplos utilizadas por todo o livro, ele
mostra solu¸c˜oes para problemas que vocˆe certamente ir´a encontrar. Ele o ajuda a integrar
MySQL, eficientemente, com ferramentas de terceiros, como PHP e Perl, habilitando-o a
gerar paginas Web dinamicas atrav´es de consultas a banco de dados. Ele o ensina a escrever
programas que acessam banco de dados MySQL, e tamb´em fornece um conjunto completo
de referˆencias para tipos de campos, operadores, fun¸c˜oes, sintaxe SQL, programando em
MySQL, API C, Perl DBI, e API PHP. MySQL simplesmente lhe dar´a informa¸c˜oes que vocˆe
n˜ao encontrar´a em nenhum outro lugar.
Se vocˆe usa o MySQL, este livro lhe oferece:
• Uma introdu¸c˜ao ao MySQL e SQL.
• Cobertura dos tipos de dados do MySQL e como us´a-los.
• Perfeito tratamento de como escrever programas clientes em C.
• Um guia para usar o Perl DBI e APIs PHP para desenvolver aplica¸c˜oes baseadas em
linha de comando e Web.
• Dicas em asssuntos administrativos como contas de usu´arios, backup, recupera¸c˜ao em
caso de quedas e seguran¸ca.
• Ajuda para escolher um Provedor de Servi¸cos de Internet para acesso MySQL.
• Uma referˆencia completa para tipos de dados MySQL, operadores, fun¸c˜oes, instru¸c˜oes
SQL e utilit´arios.
• Guias de referˆencia completos para a API C do MySQL, a API do Perl DBI e fun¸c˜oes
PHP relacionadas ao MySQL.

MySQL & mSQL
Dispon´ivel em Barnes and Noble
Editor O’Reilly
Autores Randy Jay Yarger, George Reese & Tim King
Data de Publica¸c˜ao 1st Edition July 1999
ISBN 1-56592-434-7, Order Number: 4347
P´aginas 506
Pre¸co $34.95
Este livro ensina vocˆe como usar o MySQL e mSQL, dois populares e robustos produtos de
banco de dados que suportam subsistemas de chave de SQL em ambos os sistemas Linux e
Unix. Qualquer um que conhe¸ca C b´asico, Java, Perl ou Python pode escrever um programa
para interagir com um banco de dados, podendo ser uma aplica¸c˜ao isolada ou atrav´es de uma
p´agina Web. Este livro leva vocˆe atrav´es de todo o processo, da instala¸c˜ao e configura¸c˜ao
at´e a programa¸c˜ao de interfaces e administra¸c˜ao b´asica. Inclui farto material de tutorial.
Sams’ Teach Yourself MySQL in 21 Days
Dispon´ivel em Barnes and Noble
Editor Sams
Autores Mark Maslakowski and Tony Butcher
Data de Publica¸c˜ao Junho 2000
ISBN 0672319144
P´aginas 650
Pre¸co $39.99
O Teach Yourself MySQL in 21 Days da Sams ´e indicado para usu´arios Linux intermedi´arios
que desejam entrar na ´area de bancos de dados. Boa parte do publico alvo ´e formada
por desenvolvedores Web que necessitam de um banco de dados para armazenar grande
quantidade de informa¸c˜oes para que possam ser recuperadas pela Web.
Teach Yourself MySQL in 21 Days ´e um pr´atico tutorial passo-a-passo. O leitor ir´a aprender
desenvolver e trabalhar essa tecnologia de bancos de dados open source em seu Web site
usando exemplos pr´aticos para seguir.
E-Commerce Solutions with MySQL
Dispon´ivel em Barnes and Noble
Editor Prima Communications, Inc.
Autores N˜ao dispon´ivel
Data de Publica¸c˜ao Janeiro 2000
ISBN 0761524452
P´aginas 500
Pre¸co $39.99
Sem descri¸c˜ao dispon´ivel.
MySQL and PHP from Scratch

Dispon´ivel em Barnes and Noble
Editor Que
Autores N/A
Data de Publica¸c˜ao September 2000
ISBN 0789724405
P´aginas 550
Pre¸co $34.99
Este livro disponibiliza de forma conjunta informa¸c˜oes sobre instala¸c˜ao, configura¸c˜ao e
corre¸c˜ao de problemas no Apache, MySQL, PHP3 e IMP em um volume completo. Vocˆe
aprende tamb´em como cada pe¸ca ´e parte de um conjunto de aprendizagem passo-a-passo,
para criar um sistema de e-mail baseado em Web. Aprenda a executar o equivalente ao
Active Server Pages (ASP) usando PHP3, configurar um site de e-commerce usando um
banco de dados e um servidor Web Apache, e criar um sistema de entrada de dados (como
em vendas, controle de qualidade de produ¸c˜ao, preferˆencias dos clientes, etc) para instalar
no seu PC.
Professional MySQL Programming
Dispon´ivel em Barnes and Noble
Editor Wrox Press, Inc.
Autores N/A
Data de Publica¸c˜ao Late 2001
ISBN 1861005164
P´aginas 1000
Pre¸co $49.99
Sem descri¸c˜ao dispon´ivel.
Professional Linux Programming
Dispon´ivel em Barnes and Noble
Editor Wrox Press, Inc.
Autores N/A
Data de Publica¸c˜ao September 2000
ISBN 1861003013
P´aginas 1155
Pre¸co $47.99
Neste Best-Selling Beginning Linux Programming vocˆe aprender´a com o vivˆencia e experi
ˆencia dos autores em desenvolvimento de software para Linux; Vocˆe ir´a acompanhar o
desenvolvimento da aplica¸c˜ao exemplo de uma Loja de DVD, com cap´itulos que o levam
a diferentes aspectos de sua implementa¸c˜ao. Capitulos individuais cobrem t´opicos importantes
que v˜ao al´em do tema central. Todo o foco ´e feito sobre aspectos praticos da
programa¸c˜ao, mostrando a importˆancia de se escolher a ferramenta certa para o trabalho,
usando-a da forma correta e fazendo da forma correta na primeira vez.
PHP and MySQL Web Development
Dispon´ivel em Barnes and Noble
Editor Sams

Autores Luke Welling, Laura Thomson
Data de Publica¸c˜ao March 2001
ISBN 0672317842
P´aginas 700
Pre¸co $49.99
PHP and MySQL Web Development traz `a vocˆe as vantagens de se implementar o MySQL
e PHP. As vantagens s˜ao detalhadas atrav´es das condi¸c˜oes estatist´icas e de v´arios estudos de
caso. Uma aplica¸c˜ao web pr´atica ´e desenvolvida ao longo do livro, fornecendo a vocˆe quais
s˜ao as ferramentas necess´arias para implementar um banco de dados online e funcional.
Cada fun¸c˜ao ´e desenvolvida separadamente, o que lhe permite escolher incorporar somente
partes que vocˆe deseja implementar. Conceitos de programa¸c˜ao da linguagem PHP s˜ao
destacados, incluindo fun¸c˜oes das quais amarram o suporte MySQL em um script PHP e
t´opicos avan¸cados cobrindo manipula¸c˜ao de tabelas.
Livros recomendados pelos desenvolvedores do MySQL
SQL-99 Complete, Really
Dispon´ivel em Barnes and Noble
Editor CMP Books
Autores Peter Gulutzan, Trudy Pelzer
Data de Publica¸c˜ao April 1999
ISBN 0879305681
P´aginas 1104
Pre¸co $55.96
Este livro cont´em descri¸c˜oes completas dos novos padr˜oes de sintaxe, estrutura de dados,
e processos de recupera¸c˜ao de informa¸c˜ao de bancos de dados SQL. Como um manual de
referˆencia baseado em exemplos, ele include todas as fun¸c˜oes CLI, informa¸c˜oes, tabelas de
esquemas e c´odigos de status, bem como um banco de dados funcional fornecido no disco
que acompanha o livro.
C, A reference manual
Dispon´ivel em Barnes and Noble
Editor Prentice Hall
Autores Samuel P. Harbison, Guy L. Steele
Data de Publica¸c˜ao September 1994
ISBN 0133262243
P´aginas 480
Pre¸co $35.99
Uma nova e aprimorada revis˜ao de referˆencia `a linguagem C. Este manual lhe introduz
no¸c˜oes de “C Limpo”, escrevendo c´odigo C que pode ser compilado como um programa
C++, estilo de programa¸c˜ao C que enfatiza comportamento apropriado, portabilidade, sustentabilidade,
e incorpora a emenda 1 do ISO C (1994) que especifica novas facilidades para
escrever programas em C port´aveis e internacionais.
C++ for Real Programmers
Dispon´ivel em Barnes and Noble

Editor Academic Press, Incorporated
Autores Jeff Alger, Jim Keogh
Data de Publica¸c˜ao February 1998
ISBN 0120499428
P´aginas 388
Pre¸co $39.95
C++ For Real Programmers preenche a lacuna entre C++ como foi descrito nos livros indicados
para programadores de n´ivel iniciante e intermedi´ario e o C++ utilizado por programadores
experientes. V´arias t´ecnicas preciosas s˜ao descritas, organizadas em trˆes temas
simples: indire¸c˜ao, hierarquia de classes e gerenciamento de mem´oria. Ele tamb´em cobre
detalhadamente a cria¸c˜ao de templates, ponteiros, e t´ecnicas de otimiza¸c˜ao. O foco do livro
´e em C++ ANSI independente de compilador.
C++ For Real Programmers ´e uma revis˜ao do Secrets of the C++ Masters e inclui um novo
apˆendice comparando C++ com Java. O livro vem com um disquete de 3.5″ com c´odigo
fonte para windows.
Algorithms in C
Dispon´ivel em Barnes and Noble
Editor Addison Wesley Longman, Inc.
Autores Robert Sedgewick
Data de Publica¸c˜ao April 1990
ISBN 0201514257
P´aginas 648
Pre¸co $45.75
Algorithms in C descreve uma variedade de algoritmos em algumas ´areas de interesse, incluindo:
ordena¸c˜ao, pesquisa, processamento de strings e algor´itmos geom´etricos, graficos e
matem´aticos. O livro enfatiza t´ecnicas fundamentais, fornecendo aos leitores as ferramentas
para executar, implementar e debugar ´uteis algor´itmos com confian¸ca.
Multithreaded Programming with Pthreads
Available Barnes and Noble
Publisher Prentice Hall
Authors Bil Lewis, Daniel J. Berg
Pub Date October 1997
ISBN 0136807291
Pages 432
Price $34.95
Baseado no best-selling Threads Primer, Multithreaded Programming with Pthreads da a
vocˆe um solido conhecimento de threads Posix: o que s˜ao, como funcionam, quando us´alas
e como otimiz´a-las. Ele mant´em a clareze e o humor de Threads Primer, mas inclui
compara¸c˜oes com as implementa¸c˜oes em Win32 e OS/2. Codigos exemplos testados na
maioria das plataformas UNIX s˜ao disponibilizados com explica¸c˜oes detalhadas de como e
porque eles usam threads.
Programming the PERL DBI: Database Programming with PERL

Available Barnes and Noble
Publisher O’Reilly & Associates, Incorporated
Authors Alligator Descartes, Tim Bunce
Pub Date February 2000
ISBN 1565926994
Pages 400
Price $27.96
Programming the Perl DBI ´e escrito em conjunto com Alligator Descartes, um dos membros
mais ativos da comunidade DBI, e como Tim Bunce, o inventor do DBI. Para os iniciantes
o livro explica a arquitetura do DBI e mostra como ecrever programas baseados em DBI.
Para os mais experientes o livro explica nuances do DBI e peculiaridades de cada DBD
individual.
Este livro inclui:
• Uma introdu¸c˜ao ao DBI e seu desemvolvimento.
• Como criar consultas e casar os parˆamentros.
• Trabalhando com banco de dados, drivers e manipulando instru¸c˜oes.
• Tecnicas para debugar.
• Cobertura de cada DBD existente.
• Uma referˆencia completa do DBI.
1.2.2 Informa¸c˜oes gerais e tutoriais
O seguinte livro foi recomendado por v´arias pessoas na lista de discuss˜ao do MySQL:
Judith S. Bowman, Sandra L. Emerson and Marcy Darnovsky
The Practical SQL Handbook: Using Structured Query Language
Second Edition
Addison-Wesley
ISBN 0-201-62623-3
http://www.awl.com
O seguinte livro recebeu algumas recomenda¸c˜oes por usu´arios do MySQL:
Martin Gruber
Understanding SQL
ISBN 0-89588-644-8
Publisher Sybex 510 523 8233
Alameda, CA USA
Um tutorial sobre SQL est´a dispon´ivel na rede em http://w3.one.net/~jhoffman/sqltut.htm
1.2.3 Links ´uteis relacionados ao MySQL
Al´em dos links a seguir, vocˆe pode encontrar e fazer download de v´arios programas, ferramentas
e APIs para MySQL do Diretorio de Colaboradores.
MySQL

Tutoriais e Manuais
MySQL Myths Debunked
MySQL usado no “mundo real”.
http://www.4t2.com/mysql
Informa¸c˜oes sobre a lista de discuss˜ao alem˜a do MySQL.
http://www2.rent-a-database.de/mysql/
MySQL handbook em alem˜ao.
http://www.bitmover.com:8888//home/bk/mysql
Accesso web ao reposit´orio BitKeeper do MySQL.
http://www.analysisandsolutions.com/code/mybasic.htm
Tutorial para iniciantes no MySQL em como instalar e configurar o MySQL
numa m´aquina Windows.
http://www.devshed.com/Server_Side/MySQL/
V´arios tutorias sobre MySQL.
http://mysql.hitstar.com/
Manual do MySQL em chinˆes.
http://www.linuxplanet.com/linuxplanet/tutorials/1046/1/
Configurando um site web baseado em MySQL.
http://www.hotwired.com/webmonkey/backend/tutorials/tutorial1.html
Tutorial Perl-MySQL.
http://www.iserver.com/support/contrib/perl5/modules.html
Instalando novos m´odulos Perl que necessitam de m´odulos localmente instalados.
http://www.hotwired.com/webmonkey/databases/tutorials/tutorial4.html
Tutorial PHP/MySQL.
http://www.useractive.com/
Tutorial para MySQL.
Portando MySQL/Usando MySQL em diferentes sistemas
http://www.entropy.ch/software/macosx/mysql/
Bin´arios do MySQL para MAC OS X. Inclui informa¸c˜oes sobre como construir
e usar MySQL no MAC OS X.
http://xclave.macnn.com/MySQL/
O Mac OS Xclave. Executando MySQL no Mac OS X.
http://www.prnet.de/RegEx/mysql.html
MySQL para Servidor Mac OS X .
http://www.latencyzero.com/macosx/mysql.html
Compilando o MySQL para o Mac OS X.

http://www.essencesw.com/Software/mysqllib.html
Novas bibliotecas cliente para o MAC OS Classic (Macintosh).
http://www.lilback.com/macsql/
Bibliotecas cliente para o MAC OS Classic (Macintosh).
http://sixk.maniasys.com/index_en.html
MySQL para a plataforma Amiga.
Links relacionados a Perl
http://dbimysql.photoflux.com/
FAQ MySQL com DBI Perl.
F´orum de Discuss˜ao MySQL
http://www.weberdev.com/
Exemplos de usos do MySQL; (Veja os Top 20)
http://futurerealm.com/forum/futureforum.htm
FutureForum Web Discussion Software.
Aplica¸c˜oes comerciais que suportam o MySQL
http://www.supportwizard.com/
SupportWizard; Ajuda interativa na Web (Este produto inclui uma c´opia licenciada
do MySQL.)
http://www.sonork.com/
Sonork, instant messenger que n˜ao ´e orientado somente `a Internet. Ele ´e focado
em redes privadas e em pequenas e m´edias empresas. O Cliente ´e gratuito e o
servidor tamb´em ´e gratuito para at´e 5 usu´arios.
http://www.stweb.org/
StWeb – Servidor Web e de aplica¸c˜oes Stratos – F´acil de usar, plataforma
cruzada, sistema de desenvolvimento e entrega de aplica¸c˜oes Web para Internet/
Intranet. A vers˜ao padr˜ao do StWeb tem uma interface nativa para o banco
de dados MySQL.
http://www.rightnowtech.com/
Right Now Web; Automa¸c˜ao Web para servi¸cos `a clientes.
http://www.icaap.org/Bazaar/
Bazaar; F´oruns de discuss˜ao interativas com interface Web.
http://www.phonesweep.com/
PhoneSweepT ´e o primeiro sistema de busca de telefone comercial do mundo.
Muitas invas˜oes ocorridas nos ultimos anos, n˜ao s˜ao feitas atrav´es da internet,
mas atrav´es chamadas n˜ao autorizadas atrav´es de modems. PhoneSweep permite
que vocˆe encontre estes modems atrav´es de repetidas chamadas locais para
todos os numeros de telefones que sua empresa controla. PhoneSweep tem um
sistema que pode reconhecer mais de 250 tipos diferentes de programas de acesso

remoto, incluindo Carbon Copy(TM), pcAnywhere(TM), e Windows NT RAS.
Todas as informa¸c˜oes s˜ao armazenadas em um banco de dados SQL. ´E gerado
ent˜ao um relat´orio completo detalhando quais servi¸cos forma descobertos em
cada numero de telefone em sua empresa.
Clientes SQL e Geradores de Relat´orios
urSQL Editor SQL e Utilit´ario de Consultas. Marcador de sintaxe personalizado, grade
de resultados editaveis, exporta¸c˜ao de resultados, fun¸c˜oes b´asicas de administra
¸c˜ao de NySQL, Etc.. Para Windows.
MySQL Data Manager
MySQL Data Manager * ´e cliente web independente de plataforma (escrita em
perl) para servidor MySQL sobre TCP/IP.
http://ksql.sourceforge.net/
cliente MySQL para KDE.
http://www.ecker-software.de
Um cliene GUI para Windows por David Ecker.
http://www.icaap.org/software/kiosk/
Kiosk; um cliente MySQL para gerenciamento de banco de dados. Escrito em
Perl. Ser´a uma parte do Bazaar.
http://www.casestudio.com/
Ferramenta de desenvolvimento que suporta MySQL 3.23.
http://home.skif.net/~voland/zeos/eng/index.html
Zeos – Um cliente que suporta MySQL, Interbase e PostgreSQL.
http://www.geocities.com/SiliconValley/Ridge/4280/GenericReportWriter/grwhome.html
Um gerador de relatorios gratuito escrito em Java
http://www.javaframework.de
MySQLExport – Exporta¸c˜ao instru¸c˜oes de cria¸c˜ao do MySQL e dados em diversos
formatos (SQL, HTML, CVS, text, ZIP, GZIP…)
http://dlabs.4t2.com
M2D, Um cliente administrativo do MySQL para windows. M2D suporta administra
¸c˜ao de Bancos de Dados MySQL, cria¸c˜ao de novos bancos de dados e
tabelas, edi¸c˜ao e muito mais.
http://dlabs.4t2.com
Dexter, um pequeno servidor escrito em Perl pode ser usado como servidor
proxy para o MySQL ou como um extensor do banco de dados.
http://www.scibit.com/Products/Software/Utils/Mascon.asp
Mascon ´e um poderoso GUI Win32 para administrar MySQL bancos de dados.
http://www.rtlabs.com/
MacSQL Monitor. Gui para Bancos de dados MySQL, ODBC e JDBC para o
MAC OS.

Distribui¸c˜oes que incluem o MySQL
http://www.suse.com/
SuSE Linux (6.1 e superior)
http://www.redhat.com/
RedHat Linux (7.0 e superior)
http://distro.conectiva.com.br
Conectiva Linux (4.0 e superior)
Ferramentas de Desenvolvimento Web que suportam MySQL
http://www.php.net/
PHP: Uma linguagem script do lado do servidor embutida em HTML.
http://www.midgard-project.org
The Midgard Application Server; um ambiente de desenvolvimento Web
poderoso baseado em MySQL e PHP.
http://www.smartworker.org
SmartWorker ´e uma plataforma para desenvolvimento de aplica¸c˜oes Web.
http://xsp.lentus.se/
XSP: e(X)tendible (S)erver (P)ages e ´e uma linguagem embutida em tags
HTML escrito em Java (anteriormente conhecido como XTAGS.)
http://www.dbServ.de/
dbServ ´e uma extens˜ao para um servidor web para integrar a saida do banco de
dados em seu codigo HTML. Voce pode usar qualquer func¸c˜ao HTML em sua
sa´ida. Somente o cliente poder´a te interromper. Funciona como um servidor
isolado ou como servlet Java.
http://www.chilisoft.com/
Platforma ASP independente por Chili!Soft
http://www.voicenet.com/~zellert/tjFM
Driver JDBC para MySQL.
http://www.wernhart.priv.at/php/
Demonstra¸c˜oes de MySQL e PHP.
http://www.dbwww.com/
ForwardSQL: Interface HTML para manipular bancos de dados MySQL.
http://www.daa.com.au/~james/www-sql/
WWW-SQL: Mostra informa¸c˜oes de bancos de dados.
http://www.minivend.com/minivend/
Minivend: Um carrinho de compras em Web.
http://www.heitml.com/
HeiTML: uma extens˜ao HTML do lado do servidor e uma linguagem 4GL ao
mesmo tempo.

http://www.metahtml.com/
Metahtml: Um Linguagem Dinaimca de Programa¸c˜ao para Aplica¸c˜oes WWW.
http://www.binevolve.com/
VelocityGen para Perl e Tcl.
http://hawkeye.net/
Hawkeye Internet Server Suite.
http://www.fastflow.com/
Network Database Connection para Linux
http://www.wdbi.net/
WDBI: Navegador web como um front end universal para banco de dados que
suportam MySQL.
http://www.webgroove.com/
WebGroove Script: compilador HTML e linguagem script do lado do servidor.
http://www.ihtml.com/
Uma linguagem script do lado do servidor.
ftp://ftp.igc.apc.org/pub/myodbc/README
Como usar o MySQL com ColdFusion no Solaris.
http://calistra.com/MySQL/
Administrador ODBC MySQL Calistra.
http://www.webmerger.com
Webmerger – Esta ferramenta CGI le arquivos e gera uma saida dinamica
baseada em um conjunto de tags simple. Drivers prontos para MySQL e PostgreSQL
atrav´es do ODBC.
http://phpclub.net/
PHPclub – Dicas e truques para o PHP.
http://www.penguinservices.com/scripts
Scripts MySQL e Perl.
http://www.widgetchuck.com
The Widgetchuck; Web site com ferramentas.
http://www.adcycle.com/
AdCycle – Software gerenciador de anuncios.
http://sourceforge.net/projects/pwpage/
pwPage – fornece uma ferramenta extremamente r´apida e simples para a cria¸c˜ao
de formulario de banco de dados. Isto ´e, se existe uma tabela de banco de
dados e uma pagina HTML foi construida usando poucas linhas pwPage pode
ser imediatamente usado para sele¸c˜ao, inser¸c˜ao, atualiza¸c˜ao, dele¸c˜ao de dados
da tabela e revis˜ao do conte´udo da tabela selecionada.
http://www.omnis-software.com/products/studio/studio.html
OMNIS Studio ´e uma ferramenta de desenvolvimento r´apido de aplica¸c˜oes
(RAD).

http://www.webplus.com
talentsoft Web+ 4.6 – uma completa e poderosa linguagem de desenvolvmento
para usar na cria¸c˜ao de aplica¸c˜oes cliente/servidor com base na web sem escrever
programas CGI complicados, baixo-nivel e que consomem tempo.
Ferramentas de cria¸c˜ao de bancos de dados com Suporte MySQL
http://www.mysql.com/documentation/dezign/
“DeZign for databases” ´e uma ferramenta de desenvolvimento de banco de
dados que usa diagramas de relacionamento de entidades (ERD).
Servidores Web com Ferramentas MySQL
ftp://ftp.kcilink.com/pub/
mod auth mysql, Modulo de autentica¸c˜ao para o Apache.
http://www.roxen.com/
O Servidor Web Roxen Challenger.
Extens˜oes para outros programas.
http://www.seawood.org/msql_bind/
Suporte MySQL para o BIND (O servidor de nomes da Internet).
http://www.inet-interactive.com/sendmail/
Suporte MySQL para o Sendmail e Procmail.
Utilizando o MySQL com outros programas
http://www.iserver.com/support/addonhelp/database/mysql/msaccess.html
Utilizando o MySQL com o MS Access.
http://www.iserver.com/support/contrib/perl5/modules.html
Instalando novos m´odulos Perl que exigem m´odulos instalados localmente.
Links relacionados ao ODBC
http://www.iodbc.org/
Gerenciados do driver iODBC popular (libiodbc) agora dispon´ivel como Open
Source.
http://users.ids.net/~bjepson/freeODBC/
As p´aginas do FreeODBC.
http://genix.net/unixODBC/
Os objetivos do projeto unixODBC s˜ao desenvolver e promover o unixODBC
para ser o padr˜ao definitivo para ODBC na plataforma Linux. Isso inclui suportar
suporte GUI para o KDE.
http://www.sw-soft.com/products/BtrieveODBC/
Um driver ODBC baseado em MySQL para o Btrieve.

Links relacionados `a API
http://www.jppp.com/
Componentes para MySQL compativeis com TDataset parcialmente implementados.
http://www.riverstyx.net/qpopmysql/
qpopmysql – Um patch que permite autentica¸c˜oes POP3 para um banco de
dados MySQL. Existe tamb´em um link para um patch de Paul Khavkine para
o Procmail para permitir a qualquer MTA a fazer a entrega a usuarios em um
banco de dados MySQL.
http://www.pbc.ottawa.on.ca
Gerador de classes Visual Basic para o Active X.
http://www.essencesw.com/Software/mysqllib.html
Novas bibliotecas clientes para o Mac OS Classic (Macintosh).
http://www.lilback.com/macsql/
Bibliotecas-cliente para o Macintosh.
http://www.essencesw.com/Plugins/mysqlplug.html
Plugin para o REALbasic (para Macintosh)
http://www.iis.ee.ethz.ch/~neeri/macintosh/gusi-qa.html
Uma biblioteca que emula sockets BSD e pthreads no Macintosh. Ela pode ser
usada se vocˆe quiser compilar a biblioteca do cliente MySQL para Mac. Ela
provavelmente pode ser usada para portar o MySQL para o Macintosh, mas
n˜ao conhecemos ningu´em que tenha tentado isto.
http://www.dedecker.net/jessie/scmdb/
SCMDB – Um add-on para SCM que porta a biblioteca C do MySQL para
scheme (SCM). Com esta biblioteca desenvolvedores do scheme podem fazer
conec¸c˜oes para um banco de dados MySQL e usar SQL embutido em seus
programas.
Outros Links Relacionados ao MySQL
SAT A Small Application Toolkit (SAT) ´e uma cole¸c˜ao de utilit´arios com inten¸c˜ao
de simplificar o desenvolvimento de aplica¸c˜oes pequenas, multiusuarios e com
base em GUI em um ambiente (Microsoft -ou- X) Cliente Windows / Servidor
Unix.
http://www.wix.com/mysql-hosting/
Registro de provedores Web que suportam o MySQL.
http://www.softagency.co.jp/mysql/index.en.html
Links sobre usar o MySQL no Jap˜ao/ ´ Asia.
http://abattoir.cc.ndsu.nodak.edu/~nem/mysql/udf/
Registro UDF MySQL.
http://www.open.com.au/products.html
Sitema Web Comercial de rastreamento de defeitos

http://www.stonekeep.com/pts/
PTS: Projeto de Sistema de Rastreamento.
http://tomato.nvgc.vt.edu/~hroberts/mot
Servi¸co e software de sistema de rastreamento.
http://www.cynergi.net/exportsql/
ExportSQL: Um script para exportar dados do Access95+.
http://SAL.KachinaTech.COM/H/1/MYSQL.html
Entrada MySQL SAL – Aplica¸c˜oes Ciˆentificas no Linux (Scientific Applications
on Linux).
http://www.infotech-nj.com/itech/index.shtml
Uma empresa de consultoria que menciona o MySQL nos direitos da companhia.
http://www.pmpcs.com/
PMP Computer Solutions. Desenvolvedores de banco de dados usando MySQL
and mSQL.
http://www.aewa.org/
Airborne Early Warning Association.
http://www.dedserius.com/y2kmatrix/
Testador Y2K.
Interfaces SQL e de Banco de Dados
http://java.sun.com/products/jdbc/
A API do JDBC para acesso a banco de dados.
http://www.gagme.com/mysql
Patch para mSQL Tcl.
http://www.amsoft.ru/easysql/
EasySQL: Um driver de gerenciamento como o ODBC.
http://www.lightlink.com/hessling/rexxsql.html
Um interface REXX para banco de dados SQL.
http://www.mytcl.cx/
Interface Tlc baseada em tcl-sql com muitos erros corrigidos.
http://www.binevolve.com/~tdarugar/tcl-sql/
Interface Tcl.
http://www.contrib.andrew.cmu.edu/~shadow/sql.html
Pagina de Referˆencia SQL com v´arios links interressantes.
Exemplos de utiliza¸c˜oes do MySQL
http://www.little6.com/about/linux/
Little6 Inc., Um <<<…online contract and job finding site…>>> que utiliza
MySQL, PHP3, e Linux.

http://www.delec.com/is/products/prep/examples/BookShelf/index.html
DELECis – Uma Ferramenta que torna muito f´acil a cria¸c˜ao de documenta¸c˜ao
de tabelas gerada automaticamente. Eles tˆem usado o MySQL como exemplo.
http://www.worldrecords.com
World Records – Um mecanismo de pesquisa para informa¸c˜oes sobre m´usica que
utiliza o MySQL e PHP.
http://www.webtechniques.com/archives/1998/01/note/
Um banco de dados de contatos usando MySQL e PHP.
http://modems.rosenet.net/mysql/
Calend´ario comunit´ario em PHP com interface Web.
http://www.odbsoft.com/cook/sources.htm
Pacote Perl para gerar p´aginas html de uma estrutura de tabelas SQL e instru
¸c˜oes SQL de um formul´ario HTML.
http://www.gusnet.cx/proj/telsql/
Banco de dados b´asico de telefones usando DBI/DBD.
http://tecfa.unige.ch/guides/java/staf2x/ex/jdbc/coffee-break
Exemplos JDBC por Daniel K. Schneider.
http://www.spade.com/linux/howto/PostgreSQL-HOWTO-41.html
SQL BNF
http://www.ooc.com/
Object Oriented Concepts Inc; Aplica¸c˜oes CORBA com exemplos em fontes.
http://www.pbc.ottawa.on.ca/
DBWiz: Fornece um exemplo de como gerenciar cursores em VB.
http://keilor.cs.umass.edu/pluribus/
Pluribus ´e um mecanismo de busca gratuito que melhora a qualidade de seus
resultados com o tempo. Pluribus funciona atrav´es da grava¸c˜ao de qual das
paginas um usuario selecionou entre aquelas retornadas pela consulta. Um
usuario vota na p´agina ao selecion´a-la; Pluribus utiliza ent˜ao o seu conhecimento
para melhorar a qualidade dos resultados quando outra pessoa envia a mesma
consulta (ou similar). Usa PHO e MySQL.
http://www.stopbit.com/
Stopbit -Um site de not´icias sobre tecnologia usando MySQL e PHP.
http://www.linuxsupportline.com/~kalendar/
Gerenciador de datas para KDE – O gerenciador possui suporte monousuario
(baseado e arquivo) e multiusuario (banco de dados MySQL).
http://tim.desert.net/~tim/imger/
Exemplo de armazenamento/recupera¸c˜ao de imagens com MySQL e CGI.
http://www.penguinservices.com/scripts
Sistema de Carrinho de Compras Online.

http://www.city-gallery.com/album/
Old Photo Album – O album ´e um projeto de historico de fotografia com colabora
¸c¸c˜ao popular que gera todas a paginas atrav´es de dados armazendos em
banco de dados MySQL. As p´aginas s˜ao geradas dinamicamente atrav´es de uma
interface php3 com o conte´udo do banco de dados. Utiliza imagens e descri¸c˜oes.
As imagens s˜ao armazenadas em um servidor web para evitar armazena-los em
um banco de dados como BLOBs. Todas as outras informa¸c˜oes s˜ao armazenadas
no no servidor MySQL compartilhado.
Links Gerais de Banco de Dados
http://www.pcslink.com/~ej/dbweb.html
Database Jump Site
http://black.hole-in-the.net/guy/webdb/
Homepage da lista de discuss˜ao webdb-l (Web Databases).
http://www.symbolstone.org/technology/perl/DBI/index.html
P´agina dos m´odulos DBI/DBD do Perl.
http://www.student.uni-koeln.de/cygwin/
Ferramentas Cygwin. Unix em cima do Windows.
http://dbasecentral.com/
dbasecentral.com; Desenvolvimento e distribui¸c˜ao de sistemas e aplicativos de
banco de dados poderosos e f´aceis de usar.
http://www.tek-tips.com/
Tek-Tips Forums s˜ao mais de 800 foruns de suporte p2p n˜ao comerciais e indendepentes
voltado `a profissionais da Computa¸c˜ao. Recursos incluem notifica¸c˜ao
autom´atica para respostas, uma biblioteca de links, e prote¸c˜ao confidenciais
para foruns particulares.
http://www.public.asu.edu/~peterjn/btree/
Arvores B: Estrutura de Dados em ´arvore balanceada.
http://www.fit.qut.edu.au/~maire/baobab/lecture/sld001.htm
Conferˆencia sobre Arvores B.
Existem tamb´em outros diversos sites Web que utilizam o MySQL. See hundefinedi [Users],
page hundefinedi. Envie sugest˜oes para esta lista no email webmaster@mysql.com. Estamos
pedindo que vocˆe disponibilize uma logomarca do MySQL em algum lugar de seu site se
vocˆe desejar ter sua p´agina citada aqui. Isto tamb´em ´e v´alido para ter sua p´agina adicionada
na pagina “ferramentas utilizadas” ou algo parecido.
1.2.4 Listas de Discuss˜ao MySQL
Esta se¸c˜ao traz a vocˆe as listas de discuss˜ao do MySQL e da algumas dicas de como utiliz´alas

1.2.4.1 As Listas de Discuss˜ao MySQL
Para se inscrever na principal lista de discuss˜ao sobre MySQL, envie uma mensagem para
o endere¸co de correio eletrˆonico mysql-subscribe@lists.mysql.com.
Para cancelar a sua inscri¸c˜ao na principal lista de discuss˜ao sobre MySQL envie uma mensagem
para o endere¸co de correio eletrˆonico mysql-unsubscribe@lists.mysql.com.
Somente o endere¸co para o qual vocˆe envia a mensagem ´e significante. O assunto e o corpo
da mensagem s˜ao ignorados.
Se o seu endere¸co de resposta n˜ao for v´alido, vocˆe pode especificar o seu endere¸co explicitamente,
adicionando um h´ifen ao comando de inscri¸c˜ao ou cancelamento, seguido
pelo seu ender¸co com o caracter ‘@’ do seu endere¸co substituido por um ‘=’. Por exemplo,
para inscrever seu_nome.dominio envie uma mensagem para mysql-subscribe-seu_
nome=host.dominio@lists.mysql.com
Mensagens para mysql-subscribe@lists.mysql.com ou mysql-unsubscribe@lists.mysql.com
s˜ao processadas automaticamente pelo processador de listas de discuss˜ao exmlm. Informa
¸c˜oes sobre ezmlm est˜ao dispon´iveis no Website do ezmlm.
Para enviar uma mensagem para a lista, envie para mysql@lists.mysql.com. No entanto,
n˜ao enviem mensagens de inscri¸c˜ao e cancelamento no mysql@lists.mysql.com por favor,
porque qualquer mensagem enviada para o endere¸co ser´a distribuida automaticamente para
milhares de outros usuarios.
Seu site local pode ter muitas inscri¸c˜oes para mysql@lists.mysql.com. Neste caso, ele pode
ter uma lista de discuss˜ao local, assim as mensagens enviadas para lists.mysql.com para
seu site s˜ao 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ˆe quiser que as mensagens da lista de discuss˜ao sejam enceminhadas para uma caixa
de correio separada no seu programa de emails, configure um filtro com base nos cabe¸calhos
das mensagens. Vocˆe pode tamb´em usar os cabe¸calhos List-ID: ou Entregar-Para: para
identificar suas mensagens.
Existe tamb´em as seguintes listas de discuss˜ao sobre MySQL atualmente:
announce-subscribe@lists.mysql.com (anuncio)
Esta ´e para anuncio de novas vers˜oes do MySQL e programas relacionados.
Esta ´e uma lista com baixo volume na qual todos usuarios do MySQL deveriam
se inscrever.
mysql-subscribe@lists.mysql.com (mysql)
A principal lista para discuss˜oes MySQL em geral. Note que alguns t´opicos s˜ao
mais bem discutidos em listas mais especializadas. Se vocˆe enviar para a lista
errada vocˆe pode n˜ao obter resposta.
mysql-digest-subscribe@lists.mysql.com (mysql-digest)
A lista mysql na forma resumida. Isto significa que vocˆe ir´a receber todas
mensagens individuais, enviadas na forma de uma grande mensagem uma ´unica
vez ao dia.
bugs-subscribe@lists.mysql.com (bugs)
Nesta lista vocˆe somente deve postar um relato de bug completo que acontece
de maneira repetitiva usando o script mysqlbug (se vocˆe estiver executando

no Windows, vocˆe dever´a incluir uma descri¸c˜ao do sistema operacional e a
vers˜ao do MySQL). Preferencialmente, vocˆe deve testar o problema usando a
´ultima vers˜ao est´avel ou de desenvolvimento do MySQL antes de postar um erro!
Qualquer um pode repetir o erro apenas usando mysql test < script no caso
do teste inclu´ido. Todos os erros enviados para esta lista dever˜ao ser corrigidos
ou documentados na pr´oxima release do MySQL! Se a solu¸c˜ao envolve apenas
a altera¸c˜ao de pequena parte do c´odigo, ser´a enviado um patch corrigindo o
problema.
bugs-digest-subscribe@lists.mysql.com (bugs-digest)
Uma vers˜ao resumida da lista bugs.
internals-subscribe@lists.mysql.com (internals)
Uma lista para pessoas que trabalham no c´odigo do MySQL. Nesta lista pode-se
discutir desenvolvimento do MySQL e pos-patches.
internals-digest-subscribe@lists.mysql.com (internals-digest)
Uma vers˜ao resumida da lista internals.
java-subscribe@lists.mysql.com (java)
Discuss˜ao sobre MySQL e Java. Maioria sobre o driver JDBC..
java-digest-subscribe@lists.mysql.com java-digest
Uma vers˜ao resumida da lista java.
win32-subscribe@lists.mysql.com (win32)
Todas as quest˜oes relacionada ao MySQL em sistemas operacionais Microsoft,
como o Win95, Win98, NT e Win2000.
win32-digest-subscribe@lists.mysql.com (win32-digest)
Uma vers˜ao resumida da lista win32.
myodbc-subscribe@lists.mysql.com (myodbc)
Tudo sobre conectividade do MySQL com ODBC.
myodbc-digest-subscribe@lists.mysql.com (myodbc-digest)
Uma vers˜ao resumida da lista myodbc.
plusplus-subscribe@lists.mysql.com (plusplus)
Tudo relacionado `a programa¸c˜ao da API C++ para o MySQL.
plusplus-digest-subscribe@lists.mysql.com (plusplus-digest)
Uma vers˜ao resumida da lista plusplus.
msql-mysql-modules-subscribe@lists.mysql.com (msql-mysql-modules)
Lista sobre o Suporte MySQL no Perl. msql-mysql-modules
msql-mysql-modules-digest-subscribe@lists.mysql.com
(msql-mysql-modules-digest)
Lista resumida sobre a vers˜ao do msql-mysql-modules.
Vocˆe se inscreve ou cancela a assinatura para todas listas do mesmo jeito que foi
descrito acima. Na sua mensagem de assinatura ou cancelamento, coloque apenas o……….. bom galéra o restante esta na apostila……………

Windows Server 2003

Credential Manager é uma nova solução que a Microsoft oferece SSO no Windows Server 2003 e Windows XP para fornecer uma credencial garantidos para armazenar informações. Ela permite que você forneça nome de usuário e senhas para vários recursos de rede e aplicações, uma vez e, em seguida, ter o sistema forneça automaticamente essas informações para visitas posteriores a esses recursos sem a sua intervenção.

Um exemplo é o comando:
net use * \ \ nome_do_computador \ nome_do_compartilhamento / user: nome_do_usuário senha / savecred

Credential Manager armazena credenciais do usuário, nos seguintes arquivos:

– Empresa Credencial Set:
\ Documents and Settings \% Username% \ Application Data \ Microsoft \ Credentials \% UserSID% \ Credenciais

– Local Credencial Set:
\ Documents and Settings \% Username% \ Local Settings \ Application Data \ Microsoft \ Credentials \% UserSID% \ Credenciais

No WindowsXP, a aplicação “Stored nomes de usuário e senhas”, que pode ser encontrado em Iniciar-> Configurações-> Painel de Controle-> Contas de usuário-> Conta%% -> Gerir as minhas senhas de rede, permite-lhe gerir este tipo de credenciais .

Este programa dumps de senhas do usuário credencial arquivos e mostra-lhes que eles estão em cleartext formulário.

COMO FUNCIONA:
O programa segue a mesma metodologia utilizada pelo Todd Sabin PWDUMP2 no seu programa para descriptografar arquivos credencial. Ela usa o “DLL injeção” técnica para executar uma discussão no mesmo contexto de segurança da Autoridade de Segurança Local Subsistema processo. A discussão do código executável deve primeiro ser copiado para o espaço de endereçamento do processo LSASS e isto exige uma conta com o direito do usuário SeDebugPrivilege. Por padrão somente administradores têm este direito. Uma vez injetadas e executado, a discussão será executado com os mesmos privilégios de acesso à Autoridade de Segurança Local Subsistema e irá utilizar a API de LsaICryptUnprotectData nativas indocumentados Lsasrv.dll para descriptografar o arquivo credenciais. A discussão armazena o resultado deste API em um arquivo temporário chamado cred.txt localizado no mesmo diretório do programa. Finalmente, credenciais do usuário são despejados ont e colocar a tela. Credential Manager pode armazenar diversos tipos de senhas, eles podem ser salvos como multibyte WideChar ou cordas, de segurança e certificados Blobs também. A escolha definitiva do método de encriptação é deixada para o usuário. O programa irá tentar reconhecer plaintext senhas armazenadas como multibyte strings ou WideChar cordas, e também decodificar Passaporte e Standard (sem entropia) credencial Blobs originalmente armazenado usando o CryptProtectData API.

creddump – Credential Manager Password Dumper para Windows XP/2003
código fonte única
binários e de código-fonte

GOSTOU DEIXE UM COMENTÁRIO

vulnerabilidades críticas em sistemas Windows

A maioria das vulnerabilidades críticas em sistemas Windows (W)
W1 – Unicode Vulnerabilidade (Salto servidores de diretório da Web – Web Server Folder Traversal)
W1.1 Descrição:
Unicode fornece um número único para cada personagem, não importa qual a plataforma, o que o programa ou o que a linguagem. O padrão Unicode foi adotado pela maioria dos fabricantes, incluindo a Microsoft. Ao enviar um servidor IIS sequências URL cuidadosamente inválida de Unicode UTF-8, um invasor pode forçar o servidor, literalmente, dentro e fora de qualquer pasta e executar comandos arbitrários. Este tipo de ataque é conhecido como ataque de diretório transversal (Directory Traversal Attack)
equivalentes em Unicode de / e \ são% 2c e 5c%, respectivamente. Enfim, você pode também representar estes caracteres usando seqüências de grandes dimensões (“a excessiva”). Essas seqüências são as representações inválidas de Unicode que são mais longos do que realmente necessário para representar o personagem. Tanto / como \ podem ser representados por um único byte. Representação “a excessiva”, por exemplo% c0% af representa o caracter / usando dois bytes. O IIS não foi escrito ou desenhado por um segurança de seleção seqüências de grandes dimensões. Por este motivo, se você enviar uma seqüência de caracteres Unicode em uma URL outsized evitar os controlos de segurança da Microsoft. Se o pedido for feito a um diretório marcado executável, o atacante pode executar arquivos executáveis no servidor. Você pode encontrar informações adicionais sobre a ameaça do Unicode:

http://www.wiretrip.net/rfp/p/doc.asp?id=57&face=2
W1.2 Sistemas afetados:
Microsoft Windows NT 4.0 com IIS 4.0 e Windows 2000 Server com IIS 5.0 sem o “Service Pack 2 instalado.
Registros CVE W1.3:
CVE-2000-0884
W1.4 Como determinar se seus sistemas estão vulneráveis:
Se você estiver executando uma versão não corrigida do IIS, ele é provavelmente mais vulneráveis. A melhor maneira de saber se é utilizar a ferramenta hfnetchk vulneráveis. Hfnetchk é uma ferramenta desenhada para permitir aos administradores para verificar como muitos patches ainda para instalar um ou mais sistemas de rede. A vulnerabilidade de passagem de diretório foi fixado arquivos Unicode com a seguinte nota:

• Q269862 – MS00-057
• Q269862 – MS00-078
• Q277873 – MS00-086
• Q293826 – MS01-026
• Q301625 – MS01-044
• Windows 2000 Service Pack 2
Se nenhum desses patches estão instalados, o sistema é vulnerável a esse problema.
Para uma verificação mais específica, testar a vulnerabilidade em seu próprio sistema para ver se ele consegue. Tente digitar o seguinte comando no seu servidor IIS:

2Bdir% 2BC% http://victima/winnt/system32/cmd.exe?/c:% 5C% 20
Essa URL pode precisar de algumas modificações para testar um sistema em particular. Se você removeu o diretório de scripts (que é recomendado), este comando irá falhar. Você pode tentar criar em seu lugar um diretório temporário que tenha permissões de execução ou usar qualquer outro diretório que contém as licenças para a execução. Por exemplo, você pode ter removido o diretório de scripts, mas ainda tenho um diretório chamado cgi-bin no local. Verifique o seu sistema usando o diretório cgi-bin em vez de scripts.
Se o sistema é vulnerável, esta URL irá gerar um salto para trás na estrutura de diretórios do seu disco mostrando uma lista de unidade C: no servidor. É, essencialmente, explorando o veredicto contra o mesmo servidor como se fosse um atacante. A única diferença é que você tenha enviado um comando que não é realmente efeito nocivo sobre o sistema, quando na verdade, um atacante pode causar danos significativos ou criar um backdoor nele.
W1.6 Como tornar o proteger a si mesmo:
Para defender-se contra este problema deve instalar os patches mais recentes da Microsoft. Para obter mais informações sobre como obter estas actualizações, ir para o Microsoft Security Bulletin, no seguinte endereço:
http://www.microsoft.com/technet/security/bulletin/MS00-078.asp
Tanto a ferramenta “IIS Lockdown” e “URL Scan” vai proteger contra esta vulnerabilidade. A ferramenta “IIS Lockdown” é concebida para ajudar os administradores a configurar o servidor IIS e está disponível em:
http://www.microsoft.com/technet/security/tools/locktool.asp
O URLScan é um filtro que é responsável pelo escoamento de muitos pedidos HTTP. Por exemplo, pode ser usado para filtrar pedidos que contenham caracteres codificados com UTF8. A ferramenta URLScan está disponível em:
http://www.microsoft.com/technet/security/URLScan.asp

GOSTOU DEIXE UM COMENTÁRIO