4. Índice
Preface ............................................................................................................................................. xvi
1. Informações Gerais ............................................................................................................................. 1
1.1. Sobre Este Manual .................................................................................................................... 1
1.1.1. Convenções Usadas Neste Manual ....................................................................................... 2
1.2. Visão Geral do Sistema de Gerenciamento de Banco de Dados MySQL ..................................................... 3
1.2.1. História do MySQL ........................................................................................................ 4
1.2.2. As Principais Características do MySQL ............................................................................... 4
1.2.3. Estabilidade do MySQL ................................................................................................... 6
1.2.4. Qual o Tamanho Que as Tabelas do MySQL Podem Ter? ........................................................... 8
1.2.5. Compatibilidade Com o Ano 2000 (Y2K) .............................................................................. 8
1.3. Visão Geral da MySQL AB ......................................................................................................... 9
1.3.1. O Modelo de Negócio e Serviços da MySQL AB .................................................................... 10
1.3.2. Informações para Contato ................................................................................................ 12
1.4. Suporte e Licenciamento do MySQL ............................................................................................. 13
1.4.1. Suporte Oferecido pela MySQL AB .................................................................................... 13
1.4.2. Copyrights e Licenças Usadas pelo MySQL ........................................................................... 13
1.4.3. Licenças do MySQL ...................................................................................................... 13
1.4.4. Logomarcas e Marcas Registradas da MySQL AB ................................................................... 15
1.5. Mapa de Desenvolvimento do MySQL ........................................................................................... 16
1.5.1. MySQL 4.0 in a Nutshell ................................................................................................. 16
1.5.2. MySQL 4.1 in a Nutshell ................................................................................................. 18
1.5.3. MySQL 5.0, A Próxima Distribuição de Desenvolvimento ......................................................... 19
1.6. MySQL e o Futuro (o TODO) ..................................................................................................... 19
1.6.1. Novos Recursos Planejados Para a Versão 4.1 ........................................................................ 20
1.6.2. Novos Recursos Planejados Para a Versão 5.0 ........................................................................ 20
1.6.3. Novos Recursos Planejados Para a Versão 5.1 ........................................................................ 21
1.6.4. Novos Recursos Planejados Para a Versão em um Futuro Próximo ................................................ 21
1.6.5. Novos Recursos Planejados Para a Versão em um Futuro a Médio Prazo ......................................... 24
1.6.6. Novos Recursos que Não Planejamos Fazer ........................................................................... 25
1.7. Fontes de Informações do MySQL ................................................................................................ 25
1.7.1. Listas de Discussão MySQL ............................................................................................. 25
1.7.2. Suporte a Comunidade MySQL Atrvés do IRC (Internet Relay Chat) ............................................. 31
1.8. Qual compatibilidade aos padrões o MySQL oferece ? ........................................................................ 31
1.8.1. Qual Padrão o MySQL Segue? .......................................................................................... 32
1.8.2. Executando o MySQL no modo ANSI ................................................................................. 32
1.8.3. Extensões do MySQL para o Padrão SQL-92 ......................................................................... 32
1.8.4. Diferenças do MySQL em Comparação com o SQL-92 ............................................................. 35
1.8.5. Como o MySQL Lida com Restrições .................................................................................. 39
1.8.6. Erros Conhecidos e Deficiências de Projetos no MySQL ............................................................ 40
2. Instalação do MySQL ......................................................................................................................... 45
2.1. Instalação rápida padrão do MySQL .............................................................................................. 45
2.1.1. Instalando o MySQL no Windows ...................................................................................... 45
2.1.2. Instalando o MySQL no Linux .......................................................................................... 52
2.1.3. Instalando o MySQL no Mac OS X ..................................................................................... 54
2.1.4. Instalando o MySQL no NetWare ....................................................................................... 55
2.2. Detalhes Gerais de Instalação ...................................................................................................... 56
2.2.1. Como obter o MySQL .................................................................................................... 56
2.2.2. Verificando a Integridade do Pacote Usando MD5 Checksums ou GnuPG .................................... 57
2.2.3. Sistemas Operacionais suportados pelo MySQL ...................................................................... 58
2.2.4. Qual versão do MySQL deve ser usada ................................................................................ 60
2.2.5. Layouts de Instalação ..................................................................................................... 62
2.2.6. Como e quando as atualizações são lançadas? ........................................................................ 63
2.2.7. Filosofia das Distribuições - Nenhum Bug Conhecidos nas Distribuições ........................................ 64
2.2.8. Binários MySQL compilados pela MySQL AB ....................................................................... 65
2.2.9. Instalando uma Distribuição Binária do MySQL ..................................................................... 68
2.3. Instalando uma distribuição com fontes do MySQL ............................................................................ 71
2.3.1. Visão geral da instalação rápida ......................................................................................... 71
2.3.2. Aplicando patches ......................................................................................................... 73
2.3.3. Opções típicas do configure ......................................................................................... 74
iv
5. Manual de Referência do MySQL 4.1
2.3.4. Instalando pela árvore de fontes do desenvolvimento ................................................................ 76
2.3.5. Lidando com Problemas de Compilação ............................................................................... 78
2.3.6. Notas MIT-pthreads ....................................................................................................... 80
2.3.7. Instalando o MySQL a partir do Fonte no Windows ................................................................. 81
2.4. Configurações e Testes Pós-instalação ........................................................................................... 84
2.4.1. Problemas Executando o mysql_install_db .................................................................... 87
2.4.2. Problemas Inicializando o Servidor MySQL .......................................................................... 88
2.4.3. Inicializando e parando o MySQL automaticamente. ................................................................ 90
2.5. Atualizando/Desatualizando o MySQL ........................................................................................... 91
2.5.1. Atualizando da Versão 4.0 para 4.1 ..................................................................................... 91
2.5.2. Atualizando da Versão 3.23 para 4.0 ................................................................................... 93
2.5.3. Atualizando da versão 3.22 para 3.23 ................................................................................... 96
2.5.4. Atualizando da versão 3.21 para 3.22 ................................................................................... 98
2.5.5. Atualizando da versão 3.20 para 3.21 ................................................................................... 98
2.5.6. Atualizando a Tabela de Permissões .................................................................................... 99
2.5.7. Atualizando para outra arquitetura ...................................................................................... 99
2.5.8. Atualizando o MySQL no Windows .................................................................................. 100
2.6. Notas específicas para os Sistemas Operacionais ............................................................................. 101
2.6.1. Notas Windows .......................................................................................................... 101
2.6.2. Notas Linux (Todas as versões) ....................................................................................... 104
2.6.3. Notas Solaris ............................................................................................................. 109
2.6.4. Notas BSD ................................................................................................................ 113
2.6.5. Notas Mac OS X ......................................................................................................... 115
2.6.6. Notas de Outros Unix ................................................................................................... 116
2.6.7. Notas OS/2 ............................................................................................................... 124
2.6.8. Notas Novell NetWare .................................................................................................. 125
2.6.9. Notas BeOS .............................................................................................................. 125
2.7. Comentários de Instalação do Perl .............................................................................................. 125
2.7.1. Instalando Perl no Unix ................................................................................................. 125
2.7.2. Instalaando ActiveState Perl no Windows ........................................................................... 126
2.7.3. Problemas Usando a Interface Perl DBI/DBD ....................................................................... 126
3. Tutorial de Introdução Do MySQL ........................................................................................................ 129
3.1. Conectando e Desconectando do Servidor ..................................................................................... 129
3.2. Fazendo Consultas ................................................................................................................. 129
3.3. Criação e Utilização de um Banco de Dados .................................................................................. 132
3.3.1. Criando e Selecionando um Banco de Dados ........................................................................ 133
3.3.2. Criando uma Tabela ..................................................................................................... 133
3.3.3. Carregando dados em uma tabela ..................................................................................... 134
3.3.4. Recuperando Informações de uma Tabela ........................................................................... 135
3.4. Obtendo Informações Sobre Bancos de Dados e Tabelas .................................................................... 146
3.5. Utilizando mysql em Modo Batch ............................................................................................. 147
3.6. Exemplos de Consultas Comuns ................................................................................................. 148
3.6.1. O Valor Máximo para uma Coluna ................................................................................... 148
3.6.2. O Registro que Armazena o Valor Máximo para uma Coluna Determinada .................................... 149
3.6.3. Máximo da Coluna por Grupo ......................................................................................... 149
3.6.4. As Linhas Armazenando o Group-wise Máximo de um Certo Campo .......................................... 149
3.6.5. Utilizando Variáveis de Usuário ....................................................................................... 150
3.6.6. Utilizando Chaves Estrangeiras ....................................................................................... 151
3.6.7. Pesquisando em Duas Chaves ......................................................................................... 151
3.6.8. Calculando Visitas Diárias ............................................................................................. 152
3.6.9. Usando AUTO_INCREMENT .......................................................................................... 152
3.7. Consultas de Projetos Gêmeos ................................................................................................... 153
3.7.1. Encontrando Todos Gêmeos Não-distribuídos ...................................................................... 153
3.7.2. Mostrando uma Tabela sobre a Situação dos Pares Gêmeos ...................................................... 155
3.8. Utilizando MySQL com Apache ................................................................................................ 155
4. Administração do Bancos de Dados MySQL ............................................................................................ 157
4.1. Configurando o MySQL .......................................................................................................... 157
4.1.1. Opções de Linha de Comando do mysqld .......................................................................... 157
4.1.2. Arquivo de Opções my.cnf .......................................................................................... 164
4.2. Executando Múltiplos MySQL Servers na Mesma Máquina ................................................................ 166
4.2.1. Executando Múltiplos Servidores no Windows ..................................................................... 168
4.2.2. Executando Múltiplos Servidores no Unix ........................................................................... 170
4.2.3. Usando Programas Clientes em um Ambiente Multi-Servidor .................................................... 171
4.3. Detalhes Gerais de Segurança e o Sistema de Privilégio de Acesso do MySQL .......................................... 172
4.3.1. Segurança Geral ......................................................................................................... 172
v
6. Manual de Referência do MySQL 4.1
4.3.2. Como Tornar o MySQL Seguro contra Crackers ................................................................... 174
4.3.3. Opções de Inicialização para o mysqld em Relação a Segurança. .............................................. 175
4.3.4. Detalhes de Segurança com LOAD DATA LOCAL ................................................................ 176
4.3.5. O Que o Sistema de Privilégios Faz .................................................................................. 176
4.3.6. Como o Sistema de Privilégios Funciona ............................................................................ 176
4.3.7. Privilégios Fornecidos pelo MySQL .................................................................................. 179
4.3.8. Conectando ao Servidor MySQL ...................................................................................... 181
4.3.9. Controle de Acesso, Estágio 1: Verificação da Conexão .......................................................... 182
4.3.10. Controle de Acesso, Estágio 2: Verificação da Requisição ...................................................... 184
4.3.11. Hashing de Senhas no MySQL 4.1 .................................................................................. 186
4.3.12. Causas dos Erros de Accesso Negado .......................................................................... 189
4.4. Gerenciamento das Contas dos Usuários no MySQL ......................................................................... 192
4.4.1. A Sintaxe de GRANT e REVOKE ...................................................................................... 192
4.4.2. Nomes de Usuários e Senhas do MySQL ............................................................................ 196
4.4.3. Quando as Alterações nos Privilégios tem Efeito ................................................................... 197
4.4.4. Configurando os Privilégios Iniciais do MySQL .................................................................... 197
4.4.5. Adicionando Novos Usuários ao MySQL ............................................................................ 198
4.4.6. Deletando Usuários do MySQL ....................................................................................... 200
4.4.7. Limitando os Recursos dos Usuários ................................................................................. 201
4.4.8. Configurando Senhas ................................................................................................... 201
4.4.9. Mantendo Sua Senha Segura ........................................................................................... 202
4.4.10. Usando Conexões Seguras ............................................................................................ 203
4.5. Prevenção de Disastres e Recuperação ......................................................................................... 207
4.5.1. Backups dos Bancos de Dados ........................................................................................ 207
4.5.2. Sintaxe de BACKUP TABLE .......................................................................................... 209
4.5.3. Sintaxe de RESTORE TABLE ......................................................................................... 209
4.5.4. Sintaxe de CHECK TABLE ............................................................................................ 210
4.5.5. Sintaxe do REPAIR TABLE .......................................................................................... 211
4.5.6. Utilizando myisamchk para Manutenção de Tabelas e Recuperação em Caso de Falhas ................... 212
4.5.7. Configurando um Regime de Manutenção das Tabelas ............................................................ 221
4.5.8. Obtendo Informações sobre as Tabelas ............................................................................... 221
4.6. Adiministração do Banco de Dados e Referência de Linguagem ........................................................... 225
4.6.1. Sintaxe de OPTIMIZE TABLE ....................................................................................... 225
4.6.2. Sintaxe de ANALYZE TABLE ......................................................................................... 225
4.6.3. Sintaxe de CHECKSUM TABLE ....................................................................................... 226
4.6.4. Sintaxe de FLUSH ....................................................................................................... 226
4.6.5. Sintaxe de RESET ....................................................................................................... 227
4.6.6. Sintaxe de PURGE MASTER LOGS ................................................................................. 227
4.6.7. Sintaxe de KILL ......................................................................................................... 227
4.6.8. Sintaxe de SHOW ......................................................................................................... 228
4.7. Localização do MySQL e Utilização Internacional ........................................................................... 244
4.7.1. O Conjunto de Caracteres Utilizado para Dados e Ordenação .................................................... 244
4.7.2. Mensagens de Erros em Outras Línguas ............................................................................. 245
4.7.3. Adicionando um Novo Conjunto de Caracteres ..................................................................... 246
4.7.4. Os Vetores de Definições de Caracteres .............................................................................. 247
4.7.5. Suporte à Ordenação de Strings ....................................................................................... 248
4.7.6. Suporte à Caracteres Multi-byte ....................................................................................... 248
4.7.7. Problemas com Conjuntos de Caracteres ............................................................................. 248
4.8. Utilitários e Scripts do Lado do Servidor MySQL ............................................................................ 248
4.8.1. Visão Geral dos Scripts e Utilitários do Lado Servidor ............................................................ 248
4.8.2. mysqld-safe, o wrapper do mysqld ............................................................................. 249
4.8.3. mysqld_multi, programa para gerenciar múltiplos servidores MySQL ..................................... 250
4.8.4. myisampack, O Gerador de Tabelas Compactadas de Somente Leitura do MySQL ........................ 253
4.8.5. mysqld-max, om servidor mysqld extendido ................................................................... 258
4.9. Utilitários e Scripts do Lado do Cliente MySQL .............................................................................. 259
4.9.1. Visão Geral dos Utilitários e Scripts do Lado do Cliente .......................................................... 259
4.9.2. mysql, A Ferramenta de Linha de Comando ....................................................................... 261
4.9.3. mysqlcc, The MySQL Control Center ............................................................................. 268
4.9.4. mysqladmin, Administrando um Servidor MySQL .............................................................. 270
4.9.5. mysqlbinlog, Executando as Consultas a Partir de um Log Binário ......................................... 272
4.9.6. Usando mysqlcheck para Manutenção de Tabelas e Recuperação em Caso de Falhas ..................... 273
4.9.7. mysqldump, Descarregando a Estrutura de Tabelas e Dados .................................................... 275
4.9.8. mysqlhotcopy, Copiando Bancos de Dados e Tabelas do MySQL .......................................... 279
4.9.9. mysqlimport, Importando Dados de Arquivos Texto .......................................................... 280
4.9.10. mysqlshow, Exibindo Bancos de Dados, Tabelas e Colunas .................................................. 282
vi
7. Manual de Referência do MySQL 4.1
4.9.11. mysql_config, Opções para compilação do cliente MySQL ................................................ 283
4.9.12. perror, Explicando Códigos de Erros ............................................................................ 284
4.9.13. Como Executar Comandos SQL a Partir de um Arquivo Texto ................................................. 284
4.10. Os Arquivos de Log do MySQL ............................................................................................... 284
4.10.1. O Log de Erros ......................................................................................................... 285
4.10.2. O Log de Consultas .................................................................................................... 285
4.10.3. O Log de Atualizações ................................................................................................ 285
4.10.4. O Log Binário .......................................................................................................... 286
4.10.5. O Log para Consultas Lentas ......................................................................................... 288
4.10.6. Manutenção do Log de Arquivo ..................................................................................... 288
4.11. Replicação no MySQL .......................................................................................................... 289
4.11.1. Introdução ............................................................................................................... 289
4.11.2. Visão Geral da Implementação da Replicação ..................................................................... 290
4.11.3. Detalhes de Implementação da Replicação ......................................................................... 291
4.11.4. Como Configurar a Replicação ...................................................................................... 294
4.11.5. Recursos de Replicação e Problemas Conhecidos ................................................................. 297
4.11.6. Opções de Inicialização da Replicação ............................................................................. 299
4.11.7. Instruções SQL para Controle do Servidor Master ................................................................ 306
4.11.8. Instruções SQL para Controle do Servidor Slave .................................................................. 307
4.11.9. FAQ da Replicação .................................................................................................... 313
4.11.10. Problemas com Replicação .......................................................................................... 317
4.11.11. Relatando Problemas de Replicação ............................................................................... 318
5. Otimização do MySQL ...................................................................................................................... 320
5.1. Visão Geral da Otimização ....................................................................................................... 320
5.1.1. Limitações do Projeto MySQL/Trocas ............................................................................... 320
5.1.2. Portabilidade ............................................................................................................. 320
5.1.3. Para que Utilizamos o MySQL? ....................................................................................... 321
5.1.4. O Pacote de Benchmark do MySQL .................................................................................. 322
5.1.5. Utilizando seus Próprios Benchmarks ................................................................................ 323
5.2. Otimizando SELECTs e Outras Consultas ..................................................................................... 324
5.2.1. Sintaxe de EXPLAIN (Obter informações sobre uma SELECT) ................................................. 324
5.2.2. Estimando o Desempenho de uma Consulta ......................................................................... 330
5.2.3. Velocidade das Consultas que Utilizam SELECT .................................................................. 330
5.2.4. Como o MySQL Otimiza Cláusulas WHERE ........................................................................ 331
5.2.5. Como o MySQL Otimiza IS NULL ................................................................................. 332
5.2.6. Como o MySQL Otimiza Cláusulas DISTINCT ................................................................... 333
5.2.7. Como o MySQL Otimiza LEFT JOIN e RIGHT JOIN ......................................................... 333
5.2.8. Como o MySQL Otimiza Cláusulas ORDER BY ................................................................... 334
5.2.9. Como o MySQL Otimiza Cláusulas LIMIT ........................................................................ 335
5.2.10. Performance das Consultas que Utilizam INSERT ............................................................... 336
5.2.11. Performance das Consultas que Utilizam UPDATE ............................................................... 337
5.2.12. Performance das Consultas que Utilizam DELETE ............................................................... 337
5.2.13. Mais Dicas sobre Otimizações ....................................................................................... 337
5.3. Detalhes sobre Locks .............................................................................................................. 339
5.3.1. Como o MySQL Trava as Tabelas .................................................................................... 339
5.3.2. Detalhes sobre Lock de Tabelas ....................................................................................... 340
5.4. Otimizando a Estrutura de Banco de Dados .................................................................................... 341
5.4.1. Opções do Projeto ....................................................................................................... 341
5.4.2. Deixando os Dados com o Menor Tamanho Possível .............................................................. 342
5.4.3. Como o MySQL Utiliza Índices ....................................................................................... 342
5.4.4. Índices de Colunas ...................................................................................................... 344
5.4.5. Índices de Múltiplas Colunas .......................................................................................... 344
5.4.6. Como o MySQL Conta as Tabelas Abertas .......................................................................... 345
5.4.7. Como o MySQL Abre e Fecha as Tabelas ........................................................................... 345
5.4.8. Desvantagem em Criar um Número Grande de Tabelas no Mesmo Banco de Dados ......................... 346
5.5. Otimizando o Servidor MySQL ................................................................................................. 346
5.5.1. Sintonia dos Parâmetros em Tempo de Sistema/Compilação e na Inicialização ................................ 347
5.5.2. Parâmetros de Sintonia do Servidor ................................................................................... 347
5.5.3. Como a Compilação e a Ligação Afetam a Velocidade do MySQL ............................................. 349
5.5.4. Como o MySQL Utiliza a Memória .................................................................................. 350
5.5.5. Como o MySQL Utiliza o DNS ....................................................................................... 351
5.5.6. Sintaxe de SET ........................................................................................................... 351
5.6. Detalhes de Disco .................................................................................................................. 355
5.6.1. Utilizando Links Simbólicos ........................................................................................... 356
6. Referência de Linguagem do MySQL .................................................................................................... 359
vii
8. Manual de Referência do MySQL 4.1
6.1. Estrutura da Linguagem ........................................................................................................... 359
6.1.1. Literais: Como Gravar Strings e Numerais .......................................................................... 359
6.1.2. Nomes de Banco de dados, Tabela, Índice, Coluna e Alias ....................................................... 361
6.1.3. Caso Sensitivo nos Nomes ............................................................................................. 363
6.1.4. Variáveis de Usuário .................................................................................................... 363
6.1.5. Variáveis de Sistema .................................................................................................... 364
6.1.6. Sintaxe de Comentários ................................................................................................. 367
6.1.7. Tratamento de Palavras Reservadas no MySQL .................................................................... 367
6.2. Tipos de Campos ................................................................................................................... 370
6.2.1. Tipos Numéricos ......................................................................................................... 374
6.2.2. Tipos de Data e Hora .................................................................................................... 375
6.2.3. Tipos String .............................................................................................................. 381
6.2.4. Escolhendo o Tipo Correto para uma Coluna ....................................................................... 384
6.2.5. Usando Tipos de Colunas de Outros Mecanismos de Banco de Dados .......................................... 385
6.2.6. Exigências de Armazenamento dos Tipos de Coluna .............................................................. 385
6.3. Funções para Uso em Cláusulas SELECT e WHERE .......................................................................... 386
6.3.1. Operadores e Funções de Tipos não Especificados ................................................................. 387
6.3.2. Funções String ........................................................................................................... 393
6.3.3. Funções Numéricas ...................................................................................................... 403
6.3.4. Funções de Data e Hora ................................................................................................ 410
6.3.5. Funções de Conversão .................................................................................................. 423
6.3.6. Outras Funções ........................................................................................................... 425
6.3.7. Funções e Modificadores para Usar com Cláusulas GROUP BY ................................................. 434
6.4. Manipulação de Dados: SELECT, INSERT, UPDATE e DELETE ......................................................... 439
6.4.1. Sintaxe SELECT ......................................................................................................... 439
6.4.2. Sintaxe de Subquery .................................................................................................... 445
6.4.3. Sintaxe INSERT ......................................................................................................... 452
6.4.4. Sintaxe UPDATE ......................................................................................................... 456
6.4.5. Sintaxe DELETE ......................................................................................................... 457
6.4.6. Sintaxe TRUNCATE ..................................................................................................... 458
6.4.7. Sintaxe REPLACE ....................................................................................................... 459
6.4.8. Sintaxe LOAD DATA INFILE ....................................................................................... 459
6.4.9. Sintaxe HANDLER ....................................................................................................... 465
6.4.10. Sintaxe DO .............................................................................................................. 466
6.5. Definição de Dados: CREATE, DROP e ALTER ............................................................................... 466
6.5.1. Sintaxe CREATE DATABASE ......................................................................................... 466
6.5.2. Sintaxe DROP DATABASE ............................................................................................ 466
6.5.3. Sintaxe CREATE TABLE .............................................................................................. 467
6.5.4. Sintaxe ALTER TABLE ................................................................................................ 474
6.5.5. Sintaxe RENAME TABLE .............................................................................................. 477
6.5.6. Sintaxe DROP TABLE .................................................................................................. 477
6.5.7. Sintaxe CREATE INDEX .............................................................................................. 478
6.5.8. Sintaxe DROP INDEX .................................................................................................. 478
6.6. Comandos Utilitários Básicos do Usuário MySQL ........................................................................... 478
6.6.1. Sintaxe USE .............................................................................................................. 478
6.6.2. Sintaxe DESCRIBE (Obtem Informações Sobre Colunas) ........................................................ 479
6.7. Comandos Transacionais e de Lock do MySQL .............................................................................. 479
6.7.1. Sintaxe de START TRANSACTION, COMMIT e ROLLBACK .................................................... 479
6.7.2. Instruções que Não Podem Ser Desfeitas ............................................................................ 480
6.7.3. Instruções que Fazem um Commit Implicito ........................................................................ 480
6.7.4. Sintaxe de SAVEPOINT e ROLLBACK TO SAVEPOINT ....................................................... 480
6.7.5. Sintaxe LOCK TABLES e UNLOCK TABLES ..................................................................... 481
6.7.6. Sintaxe SET TRANSACTION ......................................................................................... 482
6.8. Pesquisa Full-text no MySQL .................................................................................................... 482
6.8.1. Restrições Full-text ...................................................................................................... 485
6.8.2. Ajuste Fino de Pesquisas Full-text no MySQL ...................................................................... 486
6.8.3. TODO de Pesquisas Full-text .......................................................................................... 487
6.9. Cache de Consultas do MySQL .................................................................................................. 487
6.9.1. Como a Cache de Consultas Opera ................................................................................... 487
6.9.2. Configuração da Cache de Consultas ................................................................................. 488
6.9.3. Opções da Cache de Consultas na SELECT ......................................................................... 489
6.9.4. Estado e Manutenção da Cache de Consultas ....................................................................... 489
7. Tipos de Tabela do MySQL ................................................................................................................ 491
7.1. Tabelas MyISAM ................................................................................................................... 491
7.1.1. Espaço Necessário para Chaves ....................................................................................... 493
viii
9. Manual de Referência do MySQL 4.1
7.1.2. Formatos de Tabelas MyISAM ......................................................................................... 494
7.1.3. Problemas com Tabelas MyISAM ..................................................................................... 495
7.2. Tabelas MERGE .................................................................................................................... 497
7.2.1. Problemas com Tabelas MERGE ....................................................................................... 499
7.3. Tabelas ISAM ...................................................................................................................... 499
7.4. Tabelas HEAP ...................................................................................................................... 500
7.5. Tabelas InnoDB ................................................................................................................... 501
7.5.1. Visão Geral de Tabelas InnoDB ....................................................................................... 501
7.5.2. InnoDB no MySQL Versão 3.23 ...................................................................................... 501
7.5.3. Opções de Inicialização do InnoDB .................................................................................. 502
7.5.4. Criando Tablespaces no InnoDB ...................................................................................... 506
7.5.5. Criando Tabelas InnoDB ............................................................................................... 507
7.5.6. Adicionando e Removendo Arquivos de Dados e Log do InnoDB ............................................... 511
7.5.7. Fazendo Backup e Recuperando um Banco de Dados InnoDB ................................................... 511
7.5.8. Movendo um Banco de Dados InnoDB para Outra Máquina ..................................................... 513
7.5.9. Modelo Transacional do InnoDB ...................................................................................... 513
7.5.10. Dicas de Ajuste de Desempenho ..................................................................................... 518
7.5.11. Implementação de Multi-versioning ................................................................................. 520
7.5.12. Estrutura de Tabelas e Índices ........................................................................................ 521
7.5.13. Gerenciamento do Espaço de Arquivos e E/S de Disco .......................................................... 522
7.5.14. Tratando Erros .......................................................................................................... 524
7.5.15. Restrições em Tabelas InnoDB ...................................................................................... 524
7.5.16. Histórico de Alterações do InnoDB ................................................................................. 525
7.5.17. Informações de Contato do InnoDB ................................................................................ 539
7.6. Tabelas BDB ou BerkeleyDB .................................................................................................. 539
7.6.1. Visão Geral de Tabelas BDB ........................................................................................... 539
7.6.2. Instalando BDB ........................................................................................................... 539
7.6.3. Opções de Inicialização do BDB ....................................................................................... 540
7.6.4. Características de Tabelas BDB: ....................................................................................... 540
7.6.5. Itens a serem corrigidos no BDB num futuro próximo: ............................................................. 541
7.6.6. Sistemas operacionais suportados pelo BDB ......................................................................... 542
7.6.7. Restrições em Tabelas BDB ............................................................................................ 542
7.6.8. Erros Que Podem Ocorrer Usando Tabelas BDB .................................................................... 542
8. Introdução ao MaxDB ....................................................................................................................... 544
8.1. Historia do MaxDB ................................................................................................................ 544
8.2. Licenciamento e Suporte .......................................................................................................... 544
8.3. Conceitos Básicos do MaxDB ................................................................................................... 544
8.4. Diferenças de Recursos entre o MaxDB e o MySQL ......................................................................... 544
8.5. Interoperability Features between MaxDB and MySQL ..................................................................... 545
8.6. Links Relacionados ao MaxDB .................................................................................................. 545
8.7. Palavras Reservadas no MaxDB ................................................................................................. 545
9. Conjunto de Caracteres Nacionais e Unicode ............................................................................................ 548
9.1. Conjuntos de Caracteres e Collations em Geral ............................................................................... 548
9.2. Conjunto de Caracteres e Collations no MySQL .............................................................................. 548
9.3. Determinando o Conjunto de Caracteres e Collation Padrões ............................................................... 549
9.3.1. Conjunto de Caracteres e Collations do Servidor ................................................................... 549
9.3.2. Conjunto de Caracteres e Collation de Banco de Dados ........................................................... 550
9.3.3. O Conjunto de Caracteres e Collations de Tabela ................................................................... 550
9.3.4. Conjunto de Caracteres e Collation de Colunas ..................................................................... 551
9.3.5. Exemplos de Atribuições de Conjuntos de Caracteres e Collation ............................................... 551
9.3.6. Conjunto de Caracteres e Collation de Conexão .................................................................... 552
9.3.7. Conjunto de Caracteres e Collation de Caracter de String Literal ................................................ 552
9.3.8. Cláusula COLLATE em Várias Partes de uma Consulta SQL ..................................................... 553
9.3.9. Precedência da Cláusula COLLATE ................................................................................... 554
9.3.10. Operador BINARY ..................................................................................................... 554
9.3.11. Alguns Casos Especiais Onde a Determinação da Collation e Trabalhosa ..................................... 554
9.3.12. Collations Devem Ser para o Conjunto de Caracteres Certo ..................................................... 555
9.3.13. Um exemplo do Efeito da Collation ................................................................................. 555
9.4. Operações Afetadas pelo Suporte a Conjunto de Caracteres ................................................................ 556
9.4.1. Strings de Resultados ................................................................................................... 556
9.4.2. CONVERT() ............................................................................................................. 556
9.4.3. CAST() .................................................................................................................. 557
9.4.4. SHOW CHARACTER SET ............................................................................................. 557
9.4.5. SHOW COLLATION .................................................................................................... 557
9.4.6. SHOW CREATE DATABASE ......................................................................................... 557
ix
10. Manual de Referência do MySQL 4.1
9.4.7. SHOW FULL COLUMNS ............................................................................................... 558
9.5. Suporte Unicode ................................................................................................................... 558
9.6. UTF8 para Metdados .............................................................................................................. 558
9.7. Compatibilidade com Outros SGBDs ........................................................................................... 559
9.8. Novo Formato do Arquivo de Configuração do Conjunto de Caracteres .................................................. 559
9.9. Conjunto de Caracteres Nacional ................................................................................................ 559
9.10. Atualizando para o MySQL 4.0 ................................................................................................ 560
9.10.1. Conjunto de Caracteres do MySQL e o Par/Conjunto de Caracter/Collation Correspondente do MySQL 4.1
...................................................................................................................................... 560
9.11. Os conjuntos de Caracteres e Collations que o MySQL Suporta .......................................................... 561
9.11.1. O Conjunto de Caracteres Unicode .................................................................................. 562
9.11.2. Conjunto de Caracteres para Plataformas Específicas ............................................................ 562
9.11.3. Conjunto de Caracteres do Sul da Europa e Oriente Médio ...................................................... 562
9.11.4. Os Conjuntos de Caracteres Asiáticos .............................................................................. 562
9.11.5. Os Conjuntos de Caracteres Bálticos ................................................................................ 562
9.11.6. Os Conjuntos de Caracteres Cirílicos ............................................................................... 563
9.11.7. O Conjunto de Caracteres da Europa Central ...................................................................... 563
9.11.8. Os Conjuntos de Caracteres da Europa Ocidental ................................................................. 564
10. Extensões Espacias em MySQL .......................................................................................................... 566
10.1. Introdução ......................................................................................................................... 566
10.2. O Modelo Geomátrico OpenGIS ............................................................................................... 566
10.2.1. A Hierarquia da Classe Geometry ................................................................................. 567
10.2.2. Classe Geometry ..................................................................................................... 568
10.2.3. Classe Point .......................................................................................................... 568
10.2.4. Classe Curve .......................................................................................................... 569
10.2.5. Classe LineString ................................................................................................. 569
10.2.6. Classe Surface ....................................................................................................... 569
10.2.7. Classe Polygon ....................................................................................................... 570
10.2.8. Classe GeometryCollection ................................................................................... 570
10.2.9. Classe MultiPoint ................................................................................................. 570
10.2.10. Classe MultiCurve ................................................................................................ 571
10.2.11. Classe MultiLineString (Multi Linhas) .................................................................... 571
10.2.12. Classe MultiSurface (Multi Superfícies) .................................................................... 571
10.2.13. Classe MultiPolygon (Multi Polígonos) ...................................................................... 571
10.3. Formatos de Dados Espaciais Suportados .................................................................................... 572
10.3.1. Formato Well-Known Text (WKT) ................................................................................. 572
10.3.2. Formato Well-Known Binary (WKB) ............................................................................... 573
10.4. Criando um Banco de Dados MySQL Habilitado Espacialmente ......................................................... 573
10.4.1. Tipos de Dados Espaciais do MySQL ............................................................................... 573
10.4.2. Criando Valores Espaciais ............................................................................................ 574
10.4.3. Criando Colunas Espaciais ........................................................................................... 577
10.4.4. Entrando com Dados em Colunas Espaciais ....................................................................... 577
10.4.5. Buscando Dados Espaciais ........................................................................................... 578
10.5. Analisando Informação Espacial ............................................................................................... 579
10.5.1. Funções Para Converter Geometrias Entre Formatos Diferentes ................................................ 579
10.5.2. Funções de Análise das Propriedades de Geometry ............................................................ 580
10.5.3. Funções Que Criam Novas Geometrias de Outras Existentes ................................................... 585
10.5.4. Funções Para Testar Relações Espaciais Entre Objetos Geométricos .......................................... 586
10.5.5. Relações de Retângulo de Limite Mínimo (Minimal Bounding Rectangles - MBR) em Geometrias ...... 586
10.5.6. Funções que Testam Relacionamentos Espaciais Entre Geometrias ............................................ 587
10.6. Otimizando Análises Espaciais ................................................................................................. 588
10.6.1. Criando Índices Espaciais ............................................................................................. 588
10.6.2. Usando Índice Espacial ............................................................................................... 589
10.7. Compatibilidade e Conformidade com o MySQL ........................................................................... 590
10.7.1. Recursos GIS Que Ainda Não Estão Implementados ............................................................. 590
11. Stored Procedures e Funções .............................................................................................................. 592
11.1. Sintaxe de Stored Procedure .................................................................................................... 592
11.1.1. Manutenção de Stored Procedures ................................................................................... 592
11.1.2. SHOW PROCEDURE STATUS e SHOW FUNCTION STATUS ............................................... 594
11.1.3. CALL ..................................................................................................................... 594
11.1.4. BEGIN ... END Compound Statement .......................................................................... 595
11.1.5. Instrução DECLARE ................................................................................................... 595
11.1.6. Variables in Stored Procedures ....................................................................................... 595
11.1.7. Condições e Handlers ................................................................................................. 595
11.1.8. Cursors .................................................................................................................. 597
x
11. Manual de Referência do MySQL 4.1
11.1.9. Flow Control Constructs .............................................................................................. 597
12. Ferramentas de Clientes e APIs do MySQL ............................................................................................ 600
12.1. API C do MySQL ................................................................................................................ 600
12.1.1. Tipos de Dados da API C ............................................................................................. 600
12.1.2. Visão Geral das Função da API C ................................................................................... 603
12.1.3. Descrição das Funções da API C .................................................................................... 605
12.1.4. Instruções Preparadas da API C ...................................................................................... 638
12.1.5. Tipos de Dados de Instruções Preparadas da API C .............................................................. 639
12.1.6. Visão Geral das Funções de Instruções Preparadas da API C ................................................... 641
12.1.7. Descrição das Funções de Instrução Preparada da API C ........................................................ 643
12.1.8. Tratando a Execução de Múltiplas Consultas na API C .......................................................... 657
12.1.9. Manipulando Valores de Data e Hora na API C ................................................................... 658
12.1.10. Descrição das Funções de Threads da API C ..................................................................... 659
12.1.11. Descrição das Funções do Servidor Embutido da API C ....................................................... 660
12.1.12. Dúvidas e problemas comuns ao utilzar a API C ................................................................ 661
12.1.13. Construindo Programas Clientes ................................................................................... 662
12.1.14. Como Fazer um Cliente em Threads ............................................................................... 662
12.1.15. libmysqld, a Biblioteca do Servidor Embutido MySQL ........................................................ 663
12.2. Suporte ODBC ao MySQL ..................................................................................................... 667
12.2.1. Como Instalar o MyODBC ........................................................................................... 667
12.2.2. Como Preencher os Vários Campos no Programa de Administração do ODBC .............................. 668
12.2.3. Parâmetros de Conexão do MyODBC .............................................................................. 668
12.2.4. Como Relatar Problemas com o MyODBC ........................................................................ 669
12.2.5. Programas que Funcionam com MyODBC ........................................................................ 670
12.2.6. Como Obter o Valor de uma Coluna AUTO_INCREMENT no ODBC ......................................... 674
12.2.7. Relatando Problemas com MyODBC ............................................................................... 674
12.3. Conectividade Java (JDBC) ao MySQL ...................................................................................... 675
12.4. API PHP do MySQL ............................................................................................................. 675
12.4.1. Problemas Comuns com MySQL e PHP ........................................................................... 675
12.5. API Perl do MySQL ............................................................................................................. 675
12.5.1. DBI com DBD::mysql .............................................................................................. 675
12.5.2. A interface DBI ........................................................................................................ 676
12.5.3. Mais Informações DBI/DBD .......................................................................................... 682
12.6. API C++ do MySQL ............................................................................................................. 682
12.6.1. Borland C++ ............................................................................................................ 682
12.7. API Python do MySQL .......................................................................................................... 682
12.8. API Tcl do MySQL .............................................................................................................. 682
12.9. Eiffel Wrapper do MySQL ...................................................................................................... 682
13. Tratamento de Erros no MySQL ......................................................................................................... 684
13.1. Erros Retornados ................................................................................................................. 684
14. Estendendo o MySQL ..................................................................................................................... 707
14.1. MySQL Internals ................................................................................................................. 707
14.1.1. Threads MySQL ........................................................................................................ 707
14.1.2. Pacotes de Teste do MySQL ......................................................................................... 707
14.2. Adicionando Novas Funções ao MySQL ..................................................................................... 709
14.2.1. Sintaxe CREATE FUNCTION/DROP FUNCTION .............................................................. 710
14.2.2. Adicionando Novas Funções Definidas Por Usuário .............................................................. 710
14.2.3. Adicionando uma Nova Função Nativa ............................................................................. 716
14.3. Adicionado Novos Procedimentos ao MySQL ............................................................................... 717
14.3.1. Análise de Procedimento .............................................................................................. 717
14.3.2. Escrevendo um Procedimento ........................................................................................ 718
A. Problemas e Erros Comuns ................................................................................................................ 719
A.1. Como Determinar o Que Está Causando Problemas ......................................................................... 719
A.2. Erros Comuns Usando o MySQL ............................................................................................... 720
A.2.1. Erro: Access Denied .............................................................................................. 720
A.2.2. Erro: MySQL server has gone away ....................................................................... 720
A.2.3. Erro: Can't connect to [local] MySQL server ................................................... 721
A.2.4. Erro: Client does not support authentication protocol ................................. 722
A.2.5. Erro: Host '...' is blocked ................................................................................ 722
A.2.6. Erro: Too many connections .................................................................................. 723
A.2.7. Erro: Some non-transactional changed tables couldn't be rolled back ........ 723
A.2.8. Erro: Out of memory .............................................................................................. 723
A.2.9. Erro: Packet too large ......................................................................................... 724
A.2.10. Erros de Comunicação / Comunicação Abortada ................................................................. 724
A.2.11. Erro: The table is full ...................................................................................... 725
xi
12. Manual de Referência do MySQL 4.1
A.2.12. Erro: Can't create/write to file ..................................................................... 725
A.2.13. Erro no Cliente: Commands out of sync ................................................................... 726
A.2.14. Erro: Ignoring user ............................................................................................. 726
A.2.15. Erro: Table 'xxx' doesn't exist ....................................................................... 726
A.2.16. Erro: Can't initialize character set xxx ....................................................... 727
A.2.17. Arquivo Não Encontrado ............................................................................................. 727
A.3. Assuntos Relacionados a Instalação ............................................................................................ 728
A.3.1. Problemas de Ligação com a Biblioteca do Cliente MySQL ..................................................... 728
A.3.2. Como Executar o MySQL Como Um Usuário Normal ............................................................ 728
A.3.3. Problemas com Permissões de Arquivos ............................................................................ 729
A.4. Assuntos Relacionados a Administração ...................................................................................... 729
A.4.1. O Que Fazer Se o MySQL Continua Falhando ..................................................................... 729
A.4.2. Como Recuperar uma Senha de Root Esquecida ................................................................... 731
A.4.3. Como o MySQL Trata de Discos Sem Espaço ..................................................................... 732
A.4.4. Onde o MySQL Armazena Arquivos Temporários ................................................................ 732
A.4.5. Como Proteger ou AlterarHow to Protect or Change the MySQL Socket File /tmp/mysql.sock ..... 733
A.4.6. Problemas Com Fuso Horário ......................................................................................... 734
A.5. Assuntos Relacionados a Consultas ............................................................................................ 734
A.5.1. Caso-Sensitivito em Pesquisas ........................................................................................ 734
A.5.2. Problemas Usando Colunas DATE ................................................................................... 734
A.5.3. Problemas com Valores NULL ........................................................................................ 735
A.5.4. Problemas com alias ................................................................................................ 736
A.5.5. Deletando Linhas de Tabelas Relacionadas ......................................................................... 736
A.5.6. Resolvendo Problemas Com Registros Não Encontrados ......................................................... 736
A.5.7. Problemas com Comparação de Ponto Flutuante ................................................................... 737
A.6. Assuntos Relacionados ao Otimizador ......................................................................................... 738
A.6.1. Camo evitar o varredura da tabela,,, .................................................................................. 739
A.7. Assuntos Relacionados a Definições de Tabelas ............................................................................. 739
A.7.1. Problemas com ALTER TABLE. ..................................................................................... 739
A.7.2. Como Alterar a Ordem das Colunas em Uma Tabela .............................................................. 740
A.7.3. Problemas com TEMPORARY TABLE ............................................................................ 740
B. Contribuição de Programas ................................................................................................................ 741
B.1. APIs ................................................................................................................................. 741
B.2. Conversores ........................................................................................................................ 743
B.3. Utilitários ........................................................................................................................... 743
C. Colaboradores do MySQL ................................................................................................................. 745
C.1. Desenvolvedores do MySQL .................................................................................................... 745
C.2. Coolaboradores do MySQL ...................................................................................................... 748
C.3. Responsáveis pela Documentação e Tradução ................................................................................ 752
C.4. Bibliotecas usadas e incluidas com o MySQL ................................................................................ 754
C.5. Pacotes que suportam o MySQL ................................................................................................ 754
C.6. Ferramentas que são usadas para criar o MySQL ............................................................................. 755
C.7. Responsáveis pelo Suporte do MySQL ........................................................................................ 755
D. Histórico de Alterações do MySQL ...................................................................................................... 757
D.1. Alterações na distribuição 5.0.0 (Development) .............................................................................. 757
D.2. Alterações na distribuição 4.1.x (Alpha) ....................................................................................... 757
D.2.1. Alterações na distribuição 4.1.2 (not released yet) ................................................................. 758
D.2.2. Alterações na distribuição 4.1.1 (01 de Dez de 2003) ............................................................. 759
D.2.3. Alterações na distribuição 4.1.0 (03 Apr 2003: Alpha) ............................................................ 762
D.3. Alterações na distribuição 4.0.x (Production) ................................................................................. 764
D.3.1. Alterações na distribuição 4.0.17 (not released yet) ............................................................... 764
D.3.2. Alterações na distribuição 4.0.16 (17 Out 2003) ................................................................... 766
D.3.3. Alterações na distribuição 4.0.15 (03 Sep 2003) ................................................................... 767
D.3.4. Alterações na distribuição 4.0.14 (18 Jul 2003) .................................................................... 771
D.3.5. Alterações na distribuição 4.0.13 (16 May 2003) .................................................................. 773
D.3.6. Alterações na distribuição 4.0.12 (15 Mar 2003: Production) .................................................... 776
D.3.7. Alterações na distribuição 4.0.11 (20 Feb 2003) ................................................................... 778
D.3.8. Alterações na distribuição 4.0.10 (29 Jan 2003) .................................................................... 778
D.3.9. Alterações na distribuição 4.0.9 (09 Jan 2003) ..................................................................... 780
D.3.10. Alterações na distribuição 4.0.8 (07 Jan 2003) .................................................................... 780
D.3.11. Alterações na distribuição 4.0.7 (20 Dec 2002) ................................................................... 781
D.3.12. Alterações na distribuição 4.0.6 (14 Dec 2002: Gamma) ........................................................ 781
D.3.13. Alterações na distribuição 4.0.5 (13 Nov 2002) ................................................................... 782
D.3.14. Alterações na distribuição 4.0.4 (29 Sep 2002) ................................................................... 784
D.3.15. Alterações na distribuição 4.0.3 (26 Aug 2002: Beta) ............................................................ 785
xii
13. Manual de Referência do MySQL 4.1
D.3.16. Alterações na distribuição 4.0.2 (01 Jul 2002) .................................................................... 787
D.3.17. Alterações na distribuição 4.0.1 (23 Dec 2001) ................................................................... 790
D.3.18. Alterações na distribuição 4.0.0 (Oct 2001: Alpha) .............................................................. 791
D.4. Alterações na distribuição 3.23.x (Recent; still supported) .................................................................. 793
D.4.1. Alterações na distribuição 3.23.59 (not released yet) .............................................................. 793
D.4.2. Alterações na distribuição 3.23.58 (11 Sep 2003) .................................................................. 794
D.4.3. Alterações na distribuição 3.23.57 (06 Jun 2003) .................................................................. 794
D.4.4. Alterações na distribuição 3.23.56 (13 Mar 2003) ................................................................. 795
D.4.5. Alterações na distribuição 3.23.55 (23 Jan 2003) .................................................................. 796
D.4.6. Alterações na distribuição 3.23.54 (05 Dec 2002) ................................................................. 796
D.4.7. Alterações na distribuição 3.23.53 (09 Oct 2002) .................................................................. 797
D.4.8. Alterações na distribuição 3.23.52 (14 Aug 2002) ................................................................. 798
D.4.9. Alterações na distribuição 3.23.51 (31 May 2002) ................................................................. 798
D.4.10. Alterações na distribuição 3.23.50 (21 Apr 2002) ................................................................ 799
D.4.11. Alterações na distribuição 3.23.49 .................................................................................. 800
D.4.12. Alterações na distribuição 3.23.48 (07 Feb 2002) ................................................................ 800
D.4.13. Alterações na distribuição 3.23.47 (27 Dec 2001) ................................................................ 801
D.4.14. Alterações na distribuição 3.23.46 (29 Nov 2001) ................................................................ 801
D.4.15. Alterações na distribuição 3.23.45 (22 Nov 2001) ................................................................ 802
D.4.16. Alterações na distribuição 3.23.44 (31 Oct 2001) ................................................................ 802
D.4.17. Alterações na distribuição 3.23.43 (04 Oct 2001) ................................................................ 803
D.4.18. Alterações na distribuição 3.23.42 (08 Sep 2001) ................................................................ 803
D.4.19. Alterações na distribuição 3.23.41 (11 Aug 2001) ................................................................ 804
D.4.20. Alterações na distribuição 3.23.40 .................................................................................. 805
D.4.21. Alterações na distribuição 3.23.39 (12 Jun 2001) ................................................................. 805
D.4.22. Alterações na distribuição 3.23.38 (09 May 2001) ............................................................... 806
D.4.23. Alterações na distribuição 3.23.37 (17 Apr 2001) ................................................................ 806
D.4.24. Alterações na distribuição 3.23.36 (27 Mar 2001) ................................................................ 807
D.4.25. Alterações na distribuição 3.23.35 (15 Mar 2001) ................................................................ 808
D.4.26. Alterações na distribuição 3.23.34a ................................................................................. 808
D.4.27. Alterações na distribuição 3.23.34 (10 Mar 2001) ................................................................ 808
D.4.28. Alterações na distribuição 3.23.33 (09 Feb 2001) ................................................................ 809
D.4.29. Alterações na distribuição 3.23.32 (22 Jan 2001: Production) .................................................. 810
D.4.30. Alterações na distribuição 3.23.31 (17 Jan 2001) ................................................................. 810
D.4.31. Alterações na distribuição 3.23.30 (04 Jan 2001) ................................................................. 811
D.4.32. Alterações na distribuição 3.23.29 (16 Dec 2000) ................................................................ 812
D.4.33. Alterações na distribuição 3.23.28 (22 Nov 2000: Gamma) ..................................................... 813
D.4.34. Alterações na distribuição 3.23.27 (24 Oct 2000) ................................................................ 815
D.4.35. Alterações na distribuição 3.23.26 (18 Oct 2000) ................................................................ 815
D.4.36. Alterações na distribuição 3.23.25 (29 Sep 2000) ................................................................ 816
D.4.37. Alterações na distribuição 3.23.24 (08 Sep 2000) ................................................................ 817
D.4.38. Alterações na distribuição 3.23.23 (01 Sep 2000) ................................................................ 817
D.4.39. Alterações na distribuição 3.23.22 (31 Jul 2000) ................................................................. 819
D.4.40. Alterações na distribuição 3.23.21 .................................................................................. 819
D.4.41. Alterações na distribuição 3.23.20 .................................................................................. 820
D.4.42. Alterações na distribuição 3.23.19 .................................................................................. 820
D.4.43. Alterações na distribuição 3.23.18 .................................................................................. 820
D.4.44. Alterações na distribuição 3.23.17 .................................................................................. 820
D.4.45. Alterações na distribuição 3.23.16 .................................................................................. 821
D.4.46. Alterações na distribuição 3.23.15 (May 2000: Beta) ............................................................ 822
D.4.47. Alterações na distribuição 3.23.14 .................................................................................. 822
D.4.48. Alterações na distribuição 3.23.13 .................................................................................. 823
D.4.49. Alterações na distribuição 3.23.12 (07 Mar 2000) ................................................................ 823
D.4.50. Alterações na distribuição 3.23.11 .................................................................................. 824
D.4.51. Alterações na distribuição 3.23.10 .................................................................................. 824
D.4.52. Alterações na distribuição 3.23.9 .................................................................................... 825
D.4.53. Alterações na distribuição 3.23.8 (02 Jan 2000) .................................................................. 825
D.4.54. Alterações na distribuição 3.23.7 (10 Dec 1999) ................................................................. 826
D.4.55. Alterações na distribuição 3.23.6 .................................................................................... 826
D.4.56. Alterações na distribuição 3.23.5 (20 Oct 1999) .................................................................. 827
D.4.57. Alterações na distribuição 3.23.4 (28 Sep 1999) .................................................................. 828
D.4.58. Alterações na distribuição 3.23.3 .................................................................................... 828
D.4.59. Alterações na distribuição 3.23.2 (09 Aug 1999) ................................................................. 829
D.4.60. Alterações na distribuição 3.23.1 .................................................................................... 830
D.4.61. Alterações na distribuição 3.23.0 (05 Aug 1999: Alpha) ........................................................ 830
xiii
14. Manual de Referência do MySQL 4.1
D.5. Alterações na distribuição 3.22.x (Old; discontinued) ....................................................................... 832
D.5.1. Alterações na distribuição 3.22.35 .................................................................................... 832
D.5.2. Alterações na distribuição 3.22.34 .................................................................................... 832
D.5.3. Alterações na distribuição 3.22.33 .................................................................................... 832
D.5.4. Alterações na distribuição 3.22.32 (14 Feb 2000) .................................................................. 832
D.5.5. Alterações na distribuição 3.22.31 .................................................................................... 832
D.5.6. Alterações na distribuição 3.22.30 .................................................................................... 833
D.5.7. Alterações na distribuição 3.22.29 (02 Jan 2000) .................................................................. 833
D.5.8. Alterações na distribuição 3.22.28 (20 Oct 1999) .................................................................. 833
D.5.9. Alterações na distribuição 3.22.27 .................................................................................... 833
D.5.10. Alterações na distribuição 3.22.26 (16 Sep 1999) ................................................................ 833
D.5.11. Alterações na distribuição 3.22.25 .................................................................................. 834
D.5.12. Alterações na distribuição 3.22.24 (05 Jul 1999) ................................................................. 834
D.5.13. Alterações na distribuição 3.22.23 (08 Jun 1999) ................................................................. 834
D.5.14. Alterações na distribuição 3.22.22 (30 Apr 1999) ................................................................ 834
D.5.15. Alterações na distribuição 3.22.21 .................................................................................. 835
D.5.16. Alterações na distribuição 3.22.20 (18 Mar 1999) ................................................................ 835
D.5.17. Alterações na distribuição 3.22.19 (Mar 1999: Production) ..................................................... 835
D.5.18. Alterações na distribuição 3.22.18 .................................................................................. 835
D.5.19. Alterações na distribuição 3.22.17 .................................................................................. 836
D.5.20. Alterações na distribuição 3.22.16 (Feb 1999: Gamma) ......................................................... 836
D.5.21. Alterações na distribuição 3.22.15 .................................................................................. 836
D.5.22. Alterações na distribuição 3.22.14 .................................................................................. 836
D.5.23. Alterações na distribuição 3.22.13 .................................................................................. 837
D.5.24. Alterações na distribuição 3.22.12 .................................................................................. 837
D.5.25. Alterações na distribuição 3.22.11 .................................................................................. 837
D.5.26. Alterações na distribuição 3.22.10 .................................................................................. 838
D.5.27. Alterações na distribuição 3.22.9 .................................................................................... 839
D.5.28. Alterações na distribuição 3.22.8 .................................................................................... 839
D.5.29. Alterações na distribuição 3.22.7 (Sep 1998: Beta) .............................................................. 839
D.5.30. Alterações na distribuição 3.22.6 .................................................................................... 840
D.5.31. Alterações na distribuição 3.22.5 .................................................................................... 840
D.5.32. Alterações na distribuição 3.22.4 .................................................................................... 841
D.5.33. Alterações na distribuição 3.22.3 .................................................................................... 842
D.5.34. Alterações na distribuição 3.22.2 .................................................................................... 842
D.5.35. Alterações na distribuição 3.22.1 (Jun 1998: Alpha) ............................................................. 843
D.5.36. Alterações na distribuição 3.22.0 .................................................................................... 843
D.6. Alterações na distribuição 3.21.x ............................................................................................... 844
D.6.1. Alterações na distribuição 3.21.33 .................................................................................... 844
D.6.2. Alterações na distribuição 3.21.32 .................................................................................... 845
D.6.3. Alterações na distribuição 3.21.31 .................................................................................... 845
D.6.4. Alterações na distribuição 3.21.30 .................................................................................... 845
D.6.5. Alterações na distribuição 3.21.29 .................................................................................... 846
D.6.6. Alterações na distribuição 3.21.28 .................................................................................... 846
D.6.7. Alterações na distribuição 3.21.27 .................................................................................... 846
D.6.8. Alterações na distribuição 3.21.26 .................................................................................... 847
D.6.9. Alterações na distribuição 3.21.25 .................................................................................... 847
D.6.10. Alterações na distribuição 3.21.24 .................................................................................. 847
D.6.11. Alterações na distribuição 3.21.23 .................................................................................. 847
D.6.12. Alterações na distribuição 3.21.22 .................................................................................. 848
D.6.13. Alterações na distribuição 3.21.21a ................................................................................. 849
D.6.14. Alterações na distribuição 3.21.21 .................................................................................. 849
D.6.15. Alterações na distribuição 3.21.20 .................................................................................. 849
D.6.16. Alterações na distribuição 3.21.19 .................................................................................. 849
D.6.17. Alterações na distribuição 3.21.18 .................................................................................. 849
D.6.18. Alterações na distribuição 3.21.17 .................................................................................. 850
D.6.19. Alterações na distribuição 3.21.16 .................................................................................. 850
D.6.20. Alterações na distribuição 3.21.15 .................................................................................. 850
D.6.21. Alterações na distribuição 3.21.14b ................................................................................. 851
D.6.22. Alterações na distribuição 3.21.14a ................................................................................. 851
D.6.23. Alterações na distribuição 3.21.13 .................................................................................. 852
D.6.24. Alterações na distribuição 3.21.12 .................................................................................. 852
D.6.25. Alterações na distribuição 3.21.11 .................................................................................. 853
D.6.26. Alterações na distribuição 3.21.10 .................................................................................. 853
D.6.27. Alterações na distribuição 3.21.9 .................................................................................... 853
xiv
15. Manual de Referência do MySQL 4.1
D.6.28. Alterações na distribuição 3.21.8 .................................................................................... 854
D.6.29. Alterações na distribuição 3.21.7 .................................................................................... 854
D.6.30. Alterações na distribuição 3.21.6 .................................................................................... 854
D.6.31. Alterações na distribuição 3.21.5 .................................................................................... 855
D.6.32. Alterações na distribuição 3.21.4 .................................................................................... 855
D.6.33. Alterações na distribuição 3.21.3 .................................................................................... 855
D.6.34. Alterações na distribuição 3.21.2 .................................................................................... 856
D.6.35. Alterações na distribuição 3.21.0 .................................................................................... 856
D.7. Alterações na distribuição 3.20.x ............................................................................................... 857
D.7.1. Alterações na distribuição 3.20.18 .................................................................................... 857
D.7.2. Alterações na distribuição 3.20.17 .................................................................................... 858
D.7.3. Alterações na distribuição 3.20.16 .................................................................................... 859
D.7.4. Alterações na distribuição 3.20.15 .................................................................................... 859
D.7.5. Alterações na distribuição 3.20.14 .................................................................................... 859
D.7.6. Alterações na distribuição 3.20.13 .................................................................................... 860
D.7.7. Alterações na distribuição 3.20.11 .................................................................................... 860
D.7.8. Alterações na distribuição 3.20.10 .................................................................................... 860
D.7.9. Alterações na distribuição 3.20.9 ..................................................................................... 861
D.7.10. Alterações na distribuição 3.20.8 .................................................................................... 861
D.7.11. Alterações na distribuição 3.20.7 .................................................................................... 861
D.7.12. Alterações na distribuição 3.20.6 .................................................................................... 862
D.7.13. Alterações na distribuição 3.20.3 .................................................................................... 863
D.7.14. Alterações na distribuição 3.20.0 .................................................................................... 863
D.8. Alterações na distribuição 3.19.x ............................................................................................... 864
D.8.1. Alterações na distribuição 3.19.5 ..................................................................................... 864
D.8.2. Alterações na distribuição 3.19.4 ..................................................................................... 864
D.8.3. Alterações na distribuição 3.19.3 ..................................................................................... 864
E. Portando para Outros Sistemas ............................................................................................................ 865
E.1. Depurando um Servidor MySQL ................................................................................................ 865
E.1.1. Compilando o MYSQL para Depuração ............................................................................. 866
E.1.2. Criando Arquivos Trace (Rastreamento) ............................................................................. 866
E.1.3. Depurando o mysqld no gdb ........................................................................................... 867
E.1.4. Usando Stack Trace ..................................................................................................... 868
E.1.5. Usando Arquivos de Log para Encontrar a Causa dos Erros no mysqld ......................................... 869
E.1.6. Fazendo um Caso de Teste Se Ocorre um Corrompimento de Tabela ........................................... 869
E.2. Depurando um cliente MySQL. ................................................................................................. 870
E.3. O Pacote DBUG ................................................................................................................... 870
E.4. Métodos de Lock .................................................................................................................. 871
E.5. Comentários Sobre Threads RTS ............................................................................................... 872
E.6. Diferença en Entre Alguns Pacotes de Threads ............................................................................... 873
F. Variáveis de Ambientes do MySQL ...................................................................................................... 875
G. Sintaxe de Expressões Regulares do MySQL ........................................................................................... 876
H. GPL - Licença Pública Geral do GNU ................................................................................................... 879
Índice Remissivo ................................................................................................................................ 883
xv
16. Preface
Este é o Manual de Referência para o Sistema de Banco de Dados MySQL. Este versão se refere a versão 5.0.6-beta do
MySQL Server mas também se aplica a versões mais antigas (tais como 3.23 e 4.0-produção) já que as alterações são sempre indicadas. Também há referência a versão 5.0 (desenvolvimento).
xvi