XOOPS Brasil

 

2.2. Detalhes Gerais de Instalação

2.2.1. Como obter o MySQL

Confira a homepage da MySQL homepage (MySQL) para informações sobre a versão atual e para instruções de download.

Nosso principal espelho de download está localizado em: http://mirrors.sunsite.dk/mysql/.

Para uma lista atualizada completa dos mirrors de download da MySQL, veja http://www.mysql.com/downloads/mirrors.html. Você também encontrará informação sobre como se tornar um mirror do MySQL e como relatar um mirror ruim ou desatualizado.

2.2.2. Verificando a Integridade do Pacote Usando MD5 Checksums ou GnuPG

Depois de fazer o download do pacote MySQL que serve às suas necessidades e antes de tentar instalá-lo, você deve ter certeza de que ele esta intacto e não foi manipulado.

A MySQL AB oferece dois tipos de verificação de integridade: MD5 checksums e assinaturas criptografadas usando GnuPG, o GNU Privacy Guard.

Verificando o MD5 Checksum

Depois de fazer o download do pacote, você deve verificar se o MD5 checksum corresponde a aquele fornecido na página de download do MySQL. Cada pacote tem um checksum individual, que você pode verificar com o seguinte comando:

shell> md5sum <pacote>

Note que nem todos os sistemas operacionais suportam o comando md5sum - em alguns ele é simplesmente chamado md5, outros não o possuem. No Linux, ele é parte do pacote GNU Text Utilities, que está disponível para uma grande faixa de plataformas. Você pode fazer o download do código fonte em http://www.gnu.org/software/textutils/. Se você tiver o OpenSSL instalado, você também pode usar o comando openssl md5 <pacote>. Uma implementação do comando md5 para DOS/Windows está disponível em http://www.fourmilab.ch/md5/.

Exemplo:

shell> md5sum mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz
155836a7ed8c93aee6728a827a6aa153
mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz

Você deve verificar se o resultado do checksum corresponde a aquele impresso no página de download logo abaixo do respectivo pacote.

A maioria do sites mirrors também oferecem um arquivo chamado MD5SUMS, que também inclui o MD5 checksums para todos os arquivos incluídos no diretório Downloads. Note no entanto que é muito fácil de modificar este arquivo e ele não é um método muito confiável. Caso esteja em dúvida, você deve consultar diferentes sites mirroers e comparar os resultados.

Verificação de Assinatura Usando GnuPG

Um método de verificação de integridade de um pacote mais confiável é o uso de assinaturas criptografadas. A MySQL AB usa o GNU Privacy Guard (GnuPG), uma alternativa Open Source para o bem conhecido Pretty Good Privacy (PGP) de Phil Zimmermann. Veja http://www.gnupg.org/ and http://www.openpgp.org/ para mais informações sobre OpenPGP/GnuPG e como obter e instalar o GnuPG em seus sistema. A maioria das distribuições de Linux já vêm com o GnuPG instalado por padrão.

A partir do MySQL 4.0.10 (Fevereiro de 2003), a MySQL AB começou a assinar o seus pacotes de download com GnuPG. Assinaturas criptografadas são um método bem mais confiável de verificação da integridade e autenticidade de um arquivo.

Para verificar a assinatura de um pacote específico, você primeiro precisa obtter uma cópia da chave pública GPG da MySQL AB (). Você também pode cortá-la e colá-la diretamente daqui ou obtê-la em http://www.keyserver.net/.

Key ID:
pub 1024D/5072E1F5 2003-02-03
MySQL Package signing key (www.mysql.com) <build@mysql.com>
Fingerprint: A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5
Public Key (ASCII-armored):
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3
RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ
fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3
BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW
hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV
K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE
kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI
QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep
rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q7TXlTUUwgUGFj
a2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkgPGJ1aWxkQG15c3FsLmNv
bT6IXQQTEQIAHQUCPj6jDAUJCWYBgAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQ
cuH1cY4AnilUwTXn8MatQOiG0a/bPxrvK/gCAJ4oinSNZRYTnblChwFaazt7PF3q
zIhMBBMRAgAMBQI+PqPRBYMJZgC7AAoJEElQ4SqycpHyJOEAn1mxHijft00bKXvu
cSo/pECUmppiAJ41M9MRVj5VcdH/KN/KjRtW6tHFPYhMBBMRAgAMBQI+QoIDBYMJ
YiKJAAoJELb1zU3GuiQ/lpEAoIhpp6BozKI8p6eaabzF5MlJH58pAKCu/ROofK8J
Eg2aLos+5zEYrB/LsrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWsEN/l
xaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLmRDRi
Rjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hkAWzE
7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkbf4fm
Le11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHbuE5p
/1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+Lwqq
a8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1ZaSaf
anFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGoTbOW
I39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev42Lmu
QT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkKHt92
6s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUOetdZ
Whe70YGNPw1yjWJT1IhMBBgRAgAMBQI+PqMdBQkJZgGAAAoJEIxxjTtQcuH17p4A
n3r1QpVC9yhnW2cSAjq+kr72GX0eAJ4295kl6NxYEuFApmr1+0uUq/SlsQ==
=YJkx
-----END PGP PUBLIC KEY BLOCK-----

Você pode importar esta chave em seu pasta de chaves publicas GPG usando gpg --import. Veja a documentação de GPG para mais informações de como trabalhar com chaves públicas.

Depois de fazer o download e importar a chave publica criada, faça o download do pacote MySQL desejado e da assinatura correspondente, que também está disponível na página de download. A assinatura tem a extensão .asc. Por exemplo, a assinatura de mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz seria mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc. Tenha certeza que ambos os arquivos estão armazenados no mesmo diretório e então execute o seguinte comando para verificar a assinatura para este arquivo:

shell> gpg --verify <package>.asc
Exemplo:
shell> gpg --verify mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc
gpg: Warning: using insecure memory!
gpg: Signature made Mon 03 Feb 2003 08:50:39 PM MET using DSA key ID 5072E1F5
gpg: Good signature from
"MySQL Package signing key (www.mysql.com) <build@mysql.com>"

A mensagem "Good signature" indica que está tudo certo.

Verificando Assinatura Usando RPM

Para pacotes RPM, não há assinaturas separadas - pacotes RPM atualmente têm uma assinatura GPG incluída e MD5 checksum. Você pode verificá-los executando o seguinte comando:

shell> rpm --checksig <package>.rpm
Exemplo:
shell> rpm --checksig MySQL-server-4.0.10-0.i386.rpm
MySQL-server-4.0.10-0.i386.rpm: md5 gpg OK

Nota: Se você estiver usando RPM 4.1 e ele reclamar sobre (GPG) NOT OK (MISSING KEYS: GPG#5072e1f5) (mesmo se você a importou para detro de sua pasta de chaves publicas GPG), você precisa importá-las para dentro de sua pasta de chaves RPM primeiro. RPM 4.1 não utiliza mais ias suas pastas de chaves GPG (e o próprio GPG), mas mantém sua própria pasta de chaves (porque ele é um aplicativo do sistema e a pasta de chaves públicas do GPG é um arquivo específico do utilizador). Para importar a chave pública do MySQL em uma pasta de chaves RPM, use os seguintes comandos:

shell> rpm --import <pubkey>
Exemplo:
shell> rpm --import mysql_pubkey.asc

Caso você note que as assinaturas MD5 checksum ou GPG não coincidem, tente primeiro fazer o download do pacote respectivo mais uma vez, talvez de outro site mirror. Se você não obter sucesso na verificação da integridade do pacote repetidas vezes, notifique-nos sobre tais incidentes incluindo o nome completo do pacote e o site que você tem utilizado para fazer o download pelos emails ou .

2.2.3. Sistemas Operacionais suportados pelo MySQL

Nós ulitizamos o GNU Autoconf, para que seja possível portar o MySQL para todos sistemas operacionais modernos com threads Posix funcionando e um compilador C++. (Para compilar somente o código cliente, um compilador C++ é necessário mas threads não.) Nós mesmos usamos e desenvolvemos o software primeiramente no Linux (SuSE e red Hat), FreeBSD e Sun Solaris (Versões 8 e 9).

Perceba que para alguns sistemas operacionais, o suporte nativo a thread funciona somente nas últimas versões. O MySQL compila com sucesso nas seguintes combinações de sistema operacional/pacote de thread:

Perceba que nem todas as plataformas são apropriadas para executar o MySQL. Os seguintes fatores determinam se uma certa plataforma é apropriada para uma missão crítica pesada:

  • Estabilidade geral da biblioteca thread. Uma plataforma pode ter excelente reputação, entretanto, se a biblioteca thread é instável no código que é usado pelo MySQL, mesmo se todo o resto for perfeito, o MySQL irá ser tão estável quanto a biblioteca thread.

  • A habilidade do kernel e/ou a biblioteca thread tirar vantagem do SMP em sistemas multi-processados. Em outras palavras, quando um proceesso cria uma thread, deve ser possível para aquela thread executar em uma CPU diferente que o processo original.

  • A habilidade do kernel e/ou a biblioteca thread executar várias threads que adiquire/libera um bloqueio mutex sobre uma pequena região crítica frequentemente sem trocas de contexto excessivos. Em outras palavras, se a implementação de pthread_mutex_lock() requisitar a CPU muito rapidamente, isto irá afetar o MySQL tremendamente. Se esse detalhe não estiver sendo cuidado, adicionar CPUs extras podem deixar o MySQL mais lento.

  • Estabilidade e performance geral do sistema de arquivos.

  • Habilidade do sistema de arquivos em lidar com arquivos grandes de forma eficiente, se suas tabelas forem grandes.

  • Nosso nível de experiência aqui na MySQL AB com a plataforma. Se nós conhecemos bem uma plataforma, introduzimos otimizações/correçoes específicas para ela habilitadas na hora da compilação. Nós também podemos fornecer conselhos sobre como configurar seu sistema otimizadamente para o MySQL.

  • O volume de testes feitos internamente de configurações similares.

  • O número de utilizadores que tem executado o MySQL com sucesso naquela plataforma em configurações similares. Se esse número for alto, as chances de se ter alguma surpresa específica da plataforma fica muito menor.

Baseado nos critérios acima, as melhores plataformas para a execução do MySQL até este ponto são o x86 com SuSe Linux 8.2, kernel 2.4 e ReiserFS (ou qualquer distribuição Linux similar) e Sparc com Solaris (2.7-9). FreeBSD vem em terceiro, mas realmente temos esperanças que ele irá se unir ao clube dos tops uma vez que a biblioteca thread está melhorando. Nós também acreditamos que em certo ponto iremos estar aptos para incluir todas as outras plataformas em que o MySQL compila e executa, mas não tão bem e com o mesmo nível de estabilidade e performance, na categoria superior. Isto necessitará de algum esforço da nossa parte em cooperação com os desenvolvedores dos componentes do Sistema Operacional/Biblioteca que o MySQL depende. Se você tiver interesse em melhorar algum de nossos componentes, está em uma posição para influenciar seu desenvolvimento, e precisa de instruções mais detalhadas sobre o que o MySQL necessita para uma melhor execução, envie um e-mail para lista de email ``insternals'' do MySQL. Veja mais informações sobre isto na Seção 1.7.1.1, “As Listas de Discussão do MySQL”.

Por favor, perceba que a comparação acima não é para dizer que um SO é melhor ou pior que o outro em geral. Nós estamos falando sobre a escolha de um SO para um propósito dedicado: executar o MySQL, e comparamos as plataformas levando isto em consideração. Desta forma, o resultado desta comparação seria diferente se nós incluíssemos mais detalhes. E em alguns casos, a razão de um SO ser melhor que o outro pode ser simplesmente porque colocamos mais esforço nos testes e otimização para aquela plataforma em particular. Estamos apenas colocando nossas observações para ajudá-lo na decisão de qual plataforma usar o MySQL na sua configuração.

2.2.4. Qual versão do MySQL deve ser usada

A primeira decisão a ser feita é se você deve usar a última versão de desenvolvimento ou a última versão estável:

  • Normalmente, se você estiver usando o MySQL pela primeira vez ou tentando portá-lo para algum sistema em que não exista distribuição binária, recomendamos o uso da versão estável (atualmente Versão 5.0.6-beta). Repare que todos os lançamentos do MySQL são conferidos com os testes comparativos de performance e um conjunto extenso de testes antes de cada lançamento.

  • Senão, caso você esteja trabalhando com um antigo sistema e quiser atualizá-lo, mas não que correr o risco com uma atualização sem correções, você deve faze-lo do mesmo ramo que você está usando (onde aenas o último número da versão é mais novo que o seu). Nós temos tentado corrigir somente erros fatais e torná-los menores, com alterações relativamente seguras para aquela versão.

A segunda decisão a ser feita é se você deseja usar uma distribuição fonte ou binária. Na maioria dos casos provavelmente você deverá usar a distribuição binária, se alguma existir para sua plataforma, será normalmente muito mais fácil para instalar do que a distribuição em código fonte.

Nos seguites casos você provavelmente será mais bem servido com uma instalação baseada em código fonte:

  • Se você desejar instalar o MySQL em algum lugar expecífico. (O padrão das distribuições binárias é estar``pronto para rodar'' em qualquer lugar, mas talvez você deseje ainda mais flexibilidade).

  • Para estar apto e satisfazer diferentes requisições dos utilizadores, estaremos fornecendo duas versões binárias diferentes; Uma compilada com os manipuladores de tabelas não transacionais (um binário rápido e pequeno) e um configurado com as mais importantes opções extendidas como tabelas transacionais. Ambas versões são compiladas da mesma distribuição fonte. Todos clientes MySQL nativos pode conectar com ambas versões do MySQL.

    A distribuição binária extendida é marcada com o sufixo -max e é configurada com as mesmas opções de mysqld-max. Veja mais informações sobre isto na Seção 4.8.5, “mysqld-max, om servidor mysqld extendido”.

    Se você deseja usar o RPM MySQL-Max, primeiramente você deve instalar o RPM MySQL-server padrão.

  • Se você deseja configurar mysqld com alguns recursos extras que NÃO estão nas distribuições binárias. Segue abaixo a lista das opções extras mais comuns que você pode querer usar:

    • --with-innodb

    • --with-berkeley-db (padrão para o MySQL 4.0 e seguintes)

    • --with-raid (não disponível para todas as plataformas)

    • --with-libwrap

    • --with-named-z-lib (Isto é feito para alguns dos binários)

    • --with-debug[=full]

  • A distribuição binária padrão é normalmente compilada com suporte para todos conjuntos de caracteres e deve funcionar em uma variedade de processadores para a mesma família do processador.

    Se você precisar de um servidor MySQL mais rápido você pode querer recompilá-lo com suporte para somente o conjunto de caracteres que você precisa, usar um compilador melhor (como pgcc) ou usar opções de compiladores para usar otimizações para seu processador.

  • Se você encontrar um erro e relatá-lo para o time de desenvolvimento do MySQL você provavelmente receberá um patch que será necessário aplicá-lo para a distribuição fonte para ter o bug corrigido.

  • Se você deseja ler (e/ou modificar) o código C e C++ que é o MySQL, você pode obter uma distribuição fonte. O código fonte é sempre o manual final. Distribuições fontes também contem mais testes e exemplos que as distribuições binárias.

O esquema de nomes do MySQL usa números de versões que consistem de tres números e um sufixo. Por exemplo, um nome de lançamento como mysql-4.1.0-alpha é interpretado da seguinte maneira:

  • O primeiro número (4) é a versão principal e também descreve o formato dos arquivos. Todas releases da Versão 4 tem o mesmo formato de arquivo.

  • O segundo número (1) é o nível da distribuição.

  • O terceiro número (0 é o número da versão do nível de distribuição. Este é incrementado para cada nova distribuição. Normalmente você desejará a última versão para o nível de publicação que tiver escolhido.

  • O sufixo (alpha) indica o nível de estabilidade da versão. Os possíveis sufixo são:

    • alpha indica que a versão contém grandes seções de novos códigos que não foram 100% testados. Bugs conhecidos (normalmente não tem nenhum) devem estar documentados na seção News. Veja mais informações sobre isto na Apêndice D, Histórico de Alterações do MySQL. Existem também novos comandos e extensões na maioria das publicações alpha. Desenvolvimento ativo que podem envolver maiores alterações no código pode ocorrer numa versão alpha, mas tudo será testado antes de fazer a publicação. Não podem existir erros conhecidos em nenhuma publicação do MySQL.

    • beta significa que todo o novo código foi testado. Não serão adicionados novos recursos que podem causar algum tipo de corrompimento. Não deve existir bugs conhecidos. Uma alteração de versão de alpha para beta ocorre quando não existir nenhum relato de erro fatal com uma versão alpha por pelo menos um mês e não planejarmos adicionar nenhum recurso que pode deixar algum antigo comando menos confiável.

    • gamma é o beta que já tem sido usado a algum tempo e parece funcionar bem. Apenas pequenas correções são adicionadas. Isto é o que muitas empresas chamam de release.

    • Se não existir um sufixo, significa que esta versão já está sendo executada há algum tempo em diferentes locais sem relatos de erros além dos específicos de certas plataformas. Somente correções de erros críticos são adicionados ao release. Isto é o que chamamos de uma distribuição estável.

No processo de desenvolvimento do MySQL, várias versões coexistem e estão em um estágio diferente. Naturalmente, correções de erros relevantes de uma série anterior são propagados.

  • Para a antiga série 3.23 estável/de produção, novas versões só são liberadas para erros críticos.

  • A série atual (4.0) é de qualidade estável/produção. Nenhum novo recurso que possa influenciar a estabilidade do código é adicionado.

  • No ramo alpha 4.1 principal, novos recursos são adicionados. Fontes e binários estão disponíveis para uso e teste em sistemas de desenvolvimento.

  • O ramo de desenvolvimento 5.0 só está disponível para a árvore do BitKeeper.

Todas as versões do MySQL funcionam sobre nossos testes padrões e comparativos para garantir que eles são relativamente seguros para o uso. Como os testes padrões são extendidos ao longo do tempo para conferir por todos os bugs antigos encontrados, o pacote de testes continua melhorando.

Perceba que todas publicações de versões foram testadas pelo menos com:

  • Um pacote de testes interna

    Faz parte de um sistema de produção para um cliente. Ela tem diversas tabelas com centenas de megabytes de dados.

    O diretório mysql-test contém um conjunto extensivo de casos de teste. Nós executamos estes testes para cada servidor binário.

  • O pacote de comparativos da MySQL

    Este executa uma série de consultas comuns. É também um teste para ver se o último conjunto de otimizações fez o código mais rápido. Veja mais informações sobre isto na Seção 5.1.4, “O Pacote de Benchmark do MySQL”.

  • O teste crash-me

    Este tenta determinar quais recursos o banco de dados suporta e quais são suas capacidades e limitações. Veja mais informações sobre isto na Seção 5.1.4, “O Pacote de Benchmark do MySQL”.

Outro teste é que nós usamos a versão do MySQL mais nova em nosso ambiente de produção interna, em pelo menos uma máquina. Nós temos mais de 100 gigabytes de dados com que trabalhar.

2.2.5. Layouts de Instalação

Esta seção descreve o layout padrão dos diretórios criados pela instalção das distribuições binária e fonte.

Uma distribuição binária é instalada descompactando-a no local de instalação de sua escolha (tipicamente /usr/local/mysql) e cria os seguintes diretórios nesses locais:

DiretórioConteúdo do diretório
binProgramas clientes e o servidor mysqld
dataArquivos Log, bancos de dados
docsDocumentação, Log de alterações
includeArquivos de cabeçalho (headers)
libBibliotecas
scriptsmysql_install_db
share/mysqlArquivos de mensagem de erro
sql-benchBenchmarks - testes comparativos

Uma distribuição baseada em código fonte é instalada depois de você configurá-la e compilá-la. Por padrão, a instalação copia os arquivos em /usr/local, nos seguintes subdiretórios:

DiretórioConteúdo do diretório
binProgramas clientes e scripts
include/mysqlArquivos de cabeçalho (headers)
infoDocumentação no formato Info
lib/mysqlBibliotecas
libexecO servidor mysqld
share/mysqlArquivos com mensagens de erros
sql-benchBenchmarks e o teste crash-me
varBancos de dados e arquivos log

Dentro de um diretório de instalação, o layout de uma instalação baseada em fontes diferencia de uma instalação binária nas seguintes formas:

  • The mysqld server is installed in the libexec directory rather than in the bin directory.

  • The data directory is var rather than data.

  • mysql_install_db is installed in the /usr/local/bin directory rather than in /usr/local/mysql/scripts.

  • The header file and library directories are include/mysql and lib/mysql rather than include and lib.

You can create your own binary installation from a compiled source distribution by executing the script scripts/make_binary_distribution.

2.2.6. Como e quando as atualizações são lançadas?

O MySQL está evoluindo muito rapidamente na MySQL AB e nós queremos compartilhar isto com outros utilizadores MySQL. Sempre que temos alguns recursos úteis que outros acham necessáio, tentamos fazer um release.

Também tentamos ajudar utilizadores que solicitam recursos que são de fácil implementação. Tomamos notas do que nossos utilizadores licenciados gostariam de ter,especialmente do que nossos clientes com suporte extendido desejam e tentamos ajudá-los.

Não existe uma real necessidade para baixar uma nova release. A seção News irá dizer se a nova versão tem alguma coisa que você precisa. Veja mais informações sobre isto na Apêndice D, Histórico de Alterações do MySQL.

Usamos a seguinte política quando estamos atualizando o MySQL:

  • Para cada pequena atualização, o último número na versão é incrementado. Quando tiver um maior número de novos recursos ou menor incompatibilidade com versões antigas, o segundo número na versão é incrementado. Quando o formato de arquivo altera, o primeiro número é aumentado.

  • Versões estáveis testadas aparecem na média de uma a duas vezes por ano, mas se pequenos bugs são encontrados, uma versão será lançada apenas com as correções dos erros.

  • Releases funcionais aparecem na média a cada 4-8 semanas.

  • Distribuições binárias para algumas plataformas será feita por nós somente para releases mais importantes. Outras pessoas podem fazer distribuições binárias para outros sistemas mas provavelmente com menos frequencia.

  • Nós normalmente disponibilizamos os patches logo que localizamos e corrigimos pequenos bugs. Eles normalmente são imediatamente disponibilizados em nosso repositório publico do BitKeeper. Eles serão incluídos na próxima distribuição.

  • Para bugs não críticos, mas irritantes, disponibilizamos patches se eles são enviados para nós. De qualquer forma, iremos combinar vários deles em um patch maior.

  • Se existitr, por algum motivo, um bug fatal numa versão criaremos uma nova release o mais cedo possível. Gostaríamos que outras empresas fizessem isto também.

A versão estável atual é a 3.23; nós já mudamos o desenvolvimento em atividade para a versão 4.0. Bugs contiuarão a ser corrigidos na versão estável. Não acreditamos em um congelamento completo, pois isto abandona a correções de bugs e coisas que ``devem ser feitas.'' ``Alguma coisa congelada'' significa que talvez possamos adicionar pequenas coisas que ``com certeza não afetará nada que já esteja funcionando.''

O MySQL usa um esquema de nomes um pouco diferente da maioria dos outros produtos. Em geral é relativamente seguro utilizar qualquer versão que tenha sido lançado a algumas semanas e que não tenham sido sustituída por uma nova versão. Veja mais informações sobre isto na Seção 2.2.4, “Qual versão do MySQL deve ser usada”.

2.2.7. Filosofia das Distribuições - Nenhum Bug Conhecidos nas Distribuições

Colocamos muito tempo e esforço em tornar nossas distribuições livres de erros. Pelo nosso conhecimento, não liberamos uma única versão do MySSQL com qualquer erro conhecido 'fatal'.

Um erro fatal é algo que faz o MySQL falhar com o uso normal, traz respostas erradas para consultas normais ou tem um problema de segurança.

Nós temos documentados todos os problemas conhecidos, bugs e assuntos que são dependentes das decisões de projeto. Veja mais informações sobre isto na Seção 1.8.6, “Erros Conhecidos e Deficiências de Projetos no MySQL”.

Nosso objeto é corrigir tudo que é possível, mas sem correr o risco de tornarmos uma versão menos estável. Em certos casos, isto significa que podemos corrigir um problema na(s) versão(ões) de desenvolvimento, mas não o corrigirmos na versão estável (produção). Naturalmente, documentamos tais problemas para que o utilizadores esteja ciente.

Aqui está um descrição de como nosso processo de contrução funciona:

  • Monitoramos erros de nossa lista de suporte ao cliente, a lista de email externa do MySQL e o banco de dados de bugs em http://bugs.mysql.com/.

  • Todos os erros relatados em versões usadas são inseridos nio banco de dados de bugs.

  • Quando corrigimos um erro, sempre tentamos fazer um caso de teste para ele e incluí-lo em nosso sistema de teste para assegurar que o erro nunca retornará. (Cerca de 90% de todos os erros corrigidos têm um caso de teste.)

  • Também criamos casos de teste para todos os novos recursos adicionados ao MySQL.

  • Antes de começarmos a fazer uma nova distribuição do MySQL, asseguramos que todos os erros repetitíveis relatados para a versão do MySQL (3.23.x, 4.0.x, etc) estão corrigidos. Se algo for impossível de corrigir (devido a alguma decisão de projeto interno no MySQL), documentaremos isto no manual. Veja mais informações sobre isto na Seção 1.8.6, “Erros Conhecidos e Deficiências de Projetos no MySQL”.

  • Nós fazemos uma construção para todas as plataformas para as quais suportamos binários (mais de 15 plataformas) e executamos nosso pacote de teste e benchmarks para todas elas.

  • Não publicaremos um binário para uma plataforma na qual os testes do pacote de benchmarks falharam. Se for um erro geral na fonte, o corrigimos e fazemos as contruções mais os teste em todos os sistemas novamente.

  • Se nós, durante a o porcesso de construção e teste (que leva de 2 a 3 dias) recebermos um relatório sobre um erro fatal (por exemplo, um que cause um core dump), o corrigiremos e reiniciaremos o processo de construção).

  • Depois de publicarmos os binários em MySQL, enviamos um email de anúncio nas listas de email mysql e announce. Veja mais informações sobre isto na Seção 1.7.1.1, “As Listas de Discussão do MySQL”. A mensagem de anúncio contém uma lista de todas as alterações da distribuição e qualquer problema conhecido com ela. (A seção 'problemas conhecidos' na notas das distribuições só tem sido necessária em algumas da distribuições.)

  • Para darmos acesso rapidamente aos nossos utilizadores dos últimos recursos do MySQL, fazemos uma nova distribuição do MySQL a cada 4-8 semanas. Instantâneos do código finte são contruídos diariamente e estão disponíveios em http://downloads.mysql.com/snapshots.php.

  • Se, depois da distribuição estar pronta, recebermos qualquer relatório que houve (depois de tudo) qualquer coisa criticamente errada com a construção em uma plataforma específica, corrigiremo-na imediatamente e liberaremos um nova distribuição 'a' para aquela plataforma. Graças aos nosso grande base de utilizadores, problemas são encontrados rapidamente.

  • Nosso registro para boas distribuições feitas é muito boa. Nas últimas 150 distribuições, tivemos que fazer uma nova contrução para menos de 10 distribuições (em 3 destes casos, o erro era uma biblioteca glibc com problema em uma de nossas máquinas que levamos um longo tempo para encontrar.

2.2.8. Binários MySQL compilados pela MySQL AB

Como um serviço, nós na MySQL AB fornecemos um conjunto de distribuições binárias do MySQL que são compiladas no nosso site ou em sites onde os clientes cordialmente nos dão acesso as suas máquinas.

Em adição aos binários forncedios em formatos de pacotes específicos da plataforma (veja Seção 2.1, “Instalação rápida padrão do MySQL”), oferecemos distribuições binários para outras plataformas através de arquivos tar compactados (.tar.gz).

Estas distribuições são geradas usando o script Build-tools/Do-compile que compila o código fonte e cria o arquivo binário em tar.gz usando scripts/make_binary_distribution. Estes binários são configurados e construídos com os seguintes compiladores e opções.

Binários construídos no sistema de desenvolvimento da MySQL AB:

  • Linux 2.4.xx x86 com gcc 2.95.3

    CFLAGS="-O2 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O2 -mcpu=pentiumpro -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static

  • Linux 2.4.xx Intel Itanium 2 com ecc (Intel C++ Itanium Compiler 7.0)

    CC=ecc CFLAGS="-O2 -tpp2 -ip -nolib_inline" CXX=ecc CXXFLAGS="-O2 -tpp2 -ip -nolib_inline" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile

  • Linux 2.4.xx Intel Itanium com ecc (Intel C++ Itanium Compiler 7.0)

    CC=ecc CFLAGS=-tpp1 CXX=ecc CXXFLAGS=-tpp1 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile

  • Linux 2.4.xx alpha com ccc (Compaq C V6.2-505 / Compaq C++ V6.3-006)

    CC=ccc CFLAGS="-fast -arch generic" CXX=cxx CXXFLAGS="-fast -arch generic -noexceptions -nortti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-mysqld-ldflags=-non_shared --with-client-ldflags=-non_shared --disable-shared

  • Linux 2.4.xx s390 com gcc 2.95.3

    CFLAGS="-O2" CXX=gcc CXXFLAGS="-O2 -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static

  • Linux 2.4.xx x86_64 (AMD64) com gcc 3.2.1

    CXX=gcc ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared

  • Sun Solaris 8 x86 com gcc 3.2.3

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-innodb

  • Sun Solaris 8 sparc com gcc 3.2

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --with-named-curses-libs=-lcurses --disable-shared

  • Sun Solaris 8 sparc 64bit com gcc 3.2

    CC=gcc CFLAGS="-O3 -m64 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -m64 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --with-named-curses-libs=-lcurses --disable-shared

  • Sun Solaris 9 sparc com gcc 2.95.3

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-curses-libs=-lcurses --disable-shared

  • Sun Solaris 9 sparc com cc-5.0 (Sun Forte 5.0)

    CC=cc-5.0 CXX=CC ASFLAGS="-xarch=v9" CFLAGS="-Xa -xstrconst -mt -D_FORTEC_ -xarch=v9" CXXFLAGS="-noex -mt -D_FORTEC_ -xarch=v9" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --enable-thread-safe-client --disable-shared

  • IBM AIX 4.3.2 ppc com gcc 3.2.3

    CFLAGS="-O2 -mcpu=powerpc -Wa,-many " CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared

  • IBM AIX 4.3.3 ppc com xlC_r (IBM Visual Age C/C++ 6.0)

    CC=xlc_r CFLAGS="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" CXX=xlC_r CXXFLAGS ="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared --with-innodb

  • IBM AIX 5.1.0 ppc com gcc 3.3

    CFLAGS="-O2 -mcpu=powerpc -Wa,-many" CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --with-server-suffix="-pro" --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared

  • HP-UX 10.20 pa-risc1.1 com gcc 3.1

    CFLAGS="-DHPUX -I/opt/dce/include -O3 -fPIC" CXX=gcc CXXFLAGS="-DHPUX -I/opt/dce /include -felide-constructors -fno-exceptions -fno-rtti -O3 -fPIC" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-pthread --with-named-thread-libs=-ldce --with-lib-ccflags=-fPIC --disable-shared

  • HP-UX 11.11 pa-risc2.0 64 bit com aCC (HP ANSI C++ B3910B A.03.33)

    CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared

  • HP-UX 11.11 pa-risc2.0 32bit com aCC (HP ANSI C++ B3910B A.03.33)

    CC=cc CXX=aCC CFLAGS="+DAportable" CXXFLAGS="+DAportable" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-innodb

  • Apple Mac OS X 10.2 powerpc com gcc 3.1

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared

  • FreeBSD 4.7 i386 com gcc 2.95.4

    CFLAGS=-DHAVE_BROKEN_REALPATH ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=not-used --disable-shared

  • QNX Neutrino 6.2.1 i386 with gcc 2.95.3qnx-nto 20010315

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared

Os seguintes binários são contruídos em sistemas de terceiros gentilmente cedidos para a MySQL AB pou outros utilizadores. Pou favor, note que eles só são fornecidos como cortesia. Uma vez que a MySQL AB não tem total controle sobre estes sistemas, nós podemos fornecer apenas suporte limitado para os binários construídos nestes sistemas.

  • SCO Unix 3.2v5.0.6 i386 com gcc 2.95.3

    CFLAGS="-O3 -mpentium" LDFLAGS=-static CXX=gcc CXXFLAGS="-O3 -mpentium -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared

  • SCO OpenUnix 8.0.0 i386 com CC 3.2

    CC=cc CFLAGS="-O" CXX=CC ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared

  • Compaq Tru64 OSF/1 V5.1 732 alpha com cc/cxx (Compaq C V6.3-029i / DIGITAL C++ V6.1-027)

    CC="cc -pthread" CFLAGS="-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all" CXX="cxx -pthread" CXXFLAGS="-O4 -ansi_alias -fast -inline speed -speculate all -noexceptions -nortti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-prefix=/usr/local/mysql --with-named-thread-libs="-lpthread -lmach -lexc -lc" --disable-shared --with-mysqld-ldflags=-all-static

  • SGI Irix 6.5 IP32 com gcc 3.0.1

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared

  • FreeBSD 5.0 sparc64 com gcc 3.2.1

    CFLAGS=-DHAVE_BROKEN_REALPATH ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-innodb

As seguintes opções de compilação foram usadas nos pacotes binários que a MySQL AB costumava fornecer no passado. Estes binários não são mais atualizados, mas as opções de compilação são mantidas aqui com o propósito de referência.

  • Linux 2.2.xx sparc com egcs 1.1.2

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared

  • Linux 2.2.x com x686 com gcc 2.95.2

    CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --with-extra-charsets=complex

  • SunOS 4.1.4 2 sun4c com gcc 2.7.2.1

    CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors" ./configure --prefix=/usr/local/mysql --disable-shared --with-extra-charsets=complex --enable-assembler

  • SunOS 5.5.1 (e acima) sun4u com egcs 1.0.3a ou 2.90.27 ou gcc 2.95.2 e mais novo

    CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex --enable-assembler

  • SunOS 5.6 i86pc com gcc 2.8.1

    CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex

  • BSDI BSD/OS 3.1 i386 com gcc 2.7.2.1

    CC=gcc CXX=gcc CXXFLAGS=-O ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex

  • BSDI BSD/OS 2.1 i386 com gcc 2.7.2

    CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex

  • AIX 2 4 com gcc 2.7.2.2

    CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex

Qualquer que tenha mais opções otimizadas para qualquer das configurações listadas acima pode sempre enviá-los para a lista de email ``internals'' do MySQL. Veja mais informações sobre isto na Seção 1.7.1.1, “As Listas de Discussão do MySQL”.

Distribuições RPM que anteceda o MySQL versão 3.22 são contribuições dos utilizadores. Os RPMs gerados por nós da MySQL AB só começaram a ser fornecidos a partir da versão 3.22 do MySQL.

Se você deseja compilar uma versão para depuração do MySQL, você deve adicionar --with-debug ou --with-debug=full para as linhas de configuração acima e remover qualquer opção -fomit-frame-pointer.

Para distribuições do Windows, por favor, veja Seção 2.1.1, “Instalando o MySQL no Windows”.

2.2.9. Instalando uma Distribuição Binária do MySQL

Este capítulo cobre a instalação da distribuição binária do MySQL (.tar.gz Archives) para várias plataformas (veja MySQL binaries para uma lista detalhada).

Em adição a estes pacotes genéricos, também oferecemos binários em formatos de pacote específicos da plataforma para plataformas selecionadas. Veja Seção 2.1, “Instalação rápida padrão do MySQL” para mais informações sobre como\ intalá-los.

As distribuições genéricas do MySQL estão empacotados com arquivos GNU tar com compactação gzip (.tar.gz). Você precisa das seguintes ferramentas para instalar um distribuição binária do MySQL:

  • GNU gunzip para descompactar a distribuição.

  • Um tar razoável para descompactar a distribuição. Sabemos que o GNU tar funciona. Algumas implementações tar que vêm pré-instaladas como o sistema operacional (ex. Sun tar) possuem problemas (com nome de arquivos grandes, por exemplo) Neste caso, você deve instalar o GNU tar primeiro.

Se você tiver problemas, sempre use mysqlbug ao enviar dúvidas para a lista de email do MySQL. Mesmo se o problema não for um bug, mysqlbug colhe informações do sistema que ajudarão os outros a solucionar o seu problema. Se não usar mysqlbug, você terá diminuída a probabilidade de conseguir a solução do seu problema. Você encontrará o mysqlbug no diretório bin depois de descompactar a distribuição. Veja mais informações sobre isto na Seção 1.7.1.3, “Como relatar erros ou problemas”.

Os comando básicos que você deve executar para instalar e usar uma distribuição binária do MySQL são:

shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql &

Se a sua versão do MySQL é mais antiga que a 4.0, substitua bin/safe_mysqld por bin/mysqld_safe no comando final.

Você pode adicionar novos utilizadores usando o script bin/mysql_setpermission se você instalar os módulos Perl DBI e DBD-mysql.

Uma descrição mais detalhada é apresentada a seguir.

Para instalar uma distribuição binária, siga estes passos, então proceda com a Seção 2.4, “Configurações e Testes Pós-instalação”, para a configuração da pós istalação e testes:

  1. Escolha o diretório sob o qual você deseja descompactar a distribuição e a mova para dentro dele. No exemplo a seguir, descompactamos a distribuição sob /usr/local e criamos um diretório /usr/local/mysql dentro do qual o MySQL é instalado. (As seguintes instruções, consequentemente, assumem que você tem permissão para criar arquivos em /usr/local. Se este diretório é protegido, você precisará realizar a instalação como root.)

  2. Obtenha um arquivo de distribuição de um dos sites listados em Seção 2.2.1, “Como obter o MySQL”.

    As distribuições binárias do MySQL são fornecidas como arquivos tar compactados e tem nomes como mysql-VERSÃO-SO.tar.gz, onde VERSÃO é um número (por exemplo, 3.21.15) e SO indica o tipo de sistema operacional para o qual a distribuição é pretendida (por exemplo, pc-linux-gnu-i586).

  3. Se você ver uma distribuição binária marcada com o sufixo -max, significa que o binário tem suporte para tabelas transacionais e outros recursos. Veja mais informações sobre isto na Seção 4.8.5, “mysqld-max, om servidor mysqld extendido”. Note que todos os binários são contruídos a partir da mesma distribuição fonte do MySQL.

  4. Adicione um utilizador e grupo para o mysqld ser executado:

    shell> groupadd mysql
    shell> useradd -g mysql mysql
    

    Estes comandos adicionam o grupo mysql e o utilizador mysql. A sintaxe para useradd e groupadd podem diferir um pouco nas diversas versões de Unix. Eles tambémpodem ser chamado adduser e addgroup. Você pode desejar criar o grupo e utilizador com outro nome, diferente de mysql.

  5. Chame o diretório no qual se pretende fazer a instalação:

    shell> cd /usr/local
    
  6. Descompacte a distribuição, que criará o diretório de instalação. Então crie um link simbólico para aquele diretório:

    shell> gunzip < /path/to/mysql-VERSÃO-SO.tar.gz | tar xvf -
    shell> ln -s full-path-to-mysql-VERSÃO-SO mysql
    

    O primeiro comando cria um diretório chamado mysql-VERSÃO-SO. O segundo comando cria um link simbólico para o diretório. Isto torna a referência ao diretório de instalação mais fácil, chamado como /usr/local/mysql.

  7. Altere para p diretório de instalação:

    shell> cd mysql
    

    Você encontrará diversos arquivos e subdiretórios no diretório mysql. O mais importante para propósitos de instalação são os subdiretórios bin e scripts.

    • bin

      Este diretório contém o programa cliente e o servidor. Você deve adicionar o caminho completo deste diretório a sua variável de ambiente PATH e assim a sua shell encontrará o programa MySQL de forma apropriada. Veja mais informações sobre isto na Apêndice F, Variáveis de Ambientes do MySQL.

    • scripts

      Este diretório contém o script mysql_install_db usado para inicializar o banco de dados mysql contendo a tabela de permissões que armazenam o servidor de permissões de acesso.

  8. Caso você desejasse usar o mysqlaccess e a distribuição do MySQL está em um local diferente do padrão, você deve alterar a localização para onde o mysqlaccess espera encontrar o cliente mysql. Edite o script bin/mysqlaccess aproximadamente na linha 18. Procure pela linha que se parece com a apresentada abaixo:

    $MYSQL = '/usr/local/bin/mysql'; # path to mysql executable
    

    Altere o caminho para o local onde o mysql atualmente está armazaenado em seu sistema. Se você não fizer isto receberá uma mensagem de erro Broken pipe quando executar o mysqlaccess.

  9. Crie as tabelas de permissão do MySQL (necessário apenas se você não tiver instalado o MySQL anteriormente):

    shell> scripts/mysql_install_db
    

    Note que as versões mais antigas que a 3.22.10 iniciam o servidor MySQL quando você executa o mysql_install_db. Isto não ocorre mais.

  10. Altere o proprietário dos binários para o root e o proprietário do diretório de dados para o utilizador com o quel você executará o mysqld:

    shell> chown -R root /usr/local/mysql/.
    shell> chown -R mysql /usr/local/mysql/data
    shell> chgrp -R mysql /usr/local/mysql/.
    

    O primeiro comando altera o atributo owner dos arquivos para o utilizador root, o segundo altera o atributo owner do diretório de dados para o utilizador mysql e o terceiro altera o atributo group para o grupo mysql.

  11. Se você quiser instalar o suporte para a interface Perl DBI/DBD, veja Seção 2.7, “Comentários de Instalação do Perl”.

  12. Se você desejasse que o MySQL seja iniciado automaticamente quando você iniciar a sua máquina, você pode copiar support-files/mysql.server para o local onde o seu sistema tem os arquivos de inicialização. Mais informações podem ser encontradas no script support-files/mysql.server e em Seção 2.4.3, “Inicializando e parando o MySQL automaticamente.”.

Depois de tudo estar descompactado e instalado, você deve inicializar e testar a sua distribuição.

Você pode iniciar o servidor MySQL com o seguinte comando:

shell> bin/mysqld_safe --user=mysql &

Se a sua versão do MySQl for mais antiga do que a 4.0, substitua bin/safe_mysqld por bin/mysqld_safe no comando.

Agora prossiga com Seção 4.8.2, “mysqld-safe, o wrapper do mysqld e Veja mais informações sobre isto na Seção 2.4, “Configurações e Testes Pós-instalação”.