Instalação do MariaDB - Databases - Software - Computers

Instalação do MariaDB

Índice

Instalação rápida padrão do MariaDB
Instalando o MariaDB no Windows
Instalando o MariaDB no Linux
Instalando o MariaDB no Mac OS X
Instalando o MariaDB no NetWare
Detalhes Gerais de Instalação
Como obter o MySQL
Verificando a Integridade do Pacote Usando MD5 Checksums ou GnuPG
Sistemas Operacionais suportados pelo MySQL
Qual versão do MariaDB deve ser usada
Layouts de Instalação
Como e quando as atualizações são lançadas?
Filosofia das Distribuições - Nenhum Bug Conhecidos nas Distribuições
Binários MariaDB compilados pela MariaDB Foundation
Instalando uma Distribuição Binária do MariaDB
Instalando uma distribuição com fontes do MariaDB
Visão geral da instalação rápida
Aplicando patches
Opções típicas do configure
Instalando pela árvore de fontes do desenvolvimento
Lidando com Problemas de Compilação
Notas MIT-pthreads
Instalando o MariaDB a partir do Fonte no Windows
Configurações e Testes Pós-instalação
Problemas Executando o mysql_install_db
Problemas Inicializando o Servidor MySQL
Inicializando e parando o MariaDB automaticamente.
Notas específicas para os Sistemas Operacionais
Notas Windows
Notas Linux (Todas as versões)
Notas Solaris
Notas BSD
Notas Mac OS X
Notas de Outros Unix
Notas OS/2
Notas Novell NetWare
Notas BeOS
Comentários de Instalação do Perl
Instalando Perl no Unix
Instalaando ActiveState Perl no Windows
Problemas Usando a Interface Perl DBI/DBD

Este descreve como obter e instalar o MySQL:

Instalação rápida padrão do MariaDB

Instalando o MariaDB no Windows
Instalando o MariaDB no Linux
Instalando o MariaDB no Mac OS X
Instalando o MariaDB no NetWare

Este cobre a instalação do MariaDB em plataformas onde oferecemos pacotes usando oformato de empacotamento nativo da respectiva plataforma. No entanto, as distribuições binárias do MariaDB estão disponíveis para muitas outras plataformas, veja 'Instalando uma Distribuição Binária do MariaDB' para instruções gerais de instalação para estes pacotes que se aplicam a todas as plataformas.

Veja 'Detalhes Gerais de Instalação' para mais informações sobre quais outras distribuições binárias estão disponíveis e como obtê-las.

Instalando o MariaDB no Windows

Exigências do Sistema Windows
Instalando uma Distribuição Binária do Windows
Preparando o Ambiente MariaDB do Windows
Selecionando um Servidor Windows
Iniciando o Servidor pela Primeira Vez
Iniciando o MariaDB no Windows 95, 98, ou Me
Iniciando o MariaDB no Windows NT, 2000, ou XP
Executando o MariaDB no Windows

O processo de instalação para o MariaDB no Windows tem os seguintes passos:

  1. Instale a distribuição.
  2. Configure um arquivo de opção se necessário.
  3. Selcione o servidor que você quer usar.
  4. Inicie o servidor.

O MariaDB para Windows está disponível em dois formatos de distribuição:

Geralmente, a melhor opção é a distribuição binária. É mais simples e você não precisa de nenhuma ferramenta adicional para ter o MariaDB em execução.

Exigências do Sistema Windows

Para executar o MariaDB no Windows, você precisará do seguinte:

Instalando uma Distribuição Binária do Windows

Para instalar o MariaDB no Windows usando uma distribuição binária, siga este procedimento:

  1. Se você estiver trabalhando em uma máquina Windows NT, 2000, ou XP, esteja certo de que você está logado com um usuário com privileios de administrador.
  2. Se você estiver fazendo uma atualização de uma instalação MariaDB mais nova, é necessário parar o servidor atual. Em máquinas com Windows NT, 200 ou XP, se você estiver executando o servidor como um serviço, pare-o com o comando:

    C:\> NET STOP MySQL
    

    Se você planeja usar um servidor diferente depois da atualização (por exemplo, se você quiser executar o mysqld-max em vez do mysqld), remova o serviço existente:

    C:\mysql\bin> mysqld --remove
    
  3. Você pode reinstalar o serviço com o servidor próprio depois de atualizar.

    Se você não estiver executando o servidor MariaDB como um serviço, pare desta forma:

    C:\mysql\bin> mysqladmin -u root shutdown
    
  4. Finalize o programa WinMySQLAdmin se ele estiver em execução.
  5. Descompacte os arquivos de distribuição em um diretório temporário.
  6. Execute o programa setup.exe para iniciar o processo de instalação. Se você quiser instalar em um diretório diferente do padrão (c:\mysql), use o botão Browse para especificar seu diretório preferido. Se você não instalar o MariaDB no local padrão, você precisará epecificar o local onde você inicia o servidor. O modo mais fácil de se fazer isto é usar um arquivo de opção, como descrito em 'Preparando o Ambiente MariaDB do Windows'.
  7. Finalize o processo de instalação.

Preparando o Ambiente MariaDB do Windows

Se você precisar especificar opções de inicialização quando executar o servidor, você pode indentifica-los na linha de comando ou colocá-los em um arquivo de opção. Par opções que são usadas sempre que o servidor iniciar, você achará mais conveniente utilizar um arquivo de opcão para especificar a configuração do seu MySQL. Isto é particularmente verdade sob as seguintes circunstâncias:

No Windows, o instalador do MariaDB coloca o diretório de dados diretamente sob o diretório onde você instalou o MariaDB. Se você quisesse utilizar um diretório de dados em um local diferente, você deve copiar todo o conteúdo do diretórios data para a nova localização. Por exemplo, por padrão, o instalador coloca o MariaDB em C:\mysql e o diretório de dados em C:\mysql\data. Se você quiser usar um diretório de dados de E:\mydata, você deve fazer duas coisas:

Quando o servidor MariaDB inicia no Windows, ele procura pelas opções em dois arquivos: O arquivo my.ini no diretório Windows e o arquivo chamado C:\my.cnf. O diretório do Windows é normalmente chamado C:\WINDOWS ou C:\WinNT. Você pode determinar a sua localização exata a partir do valor da variável de ambiente WINDIR usando o seguinte comando:

C:\> echo %WINDIR%

O MariaDB procura pelas opções primeiro no arquivo my.ini, e então pelo arquivo my.cnf. No entanto, para evitar confusão, é melhor se você usar apenas um destes arquivos. Se o seu PC usa um boot loader onde o drive C: não é o drive de boot, sua única opção é usar o arquivo my.ini. Independente de qual arquivo usar, ele deve ser no formato texto.

Um arquivo de opção pode ser criado e modificado com qualquer editor de texto como o programa Notepad. Por exemplo, se o MariaDB está instalado em D:\mysql e o diretório de dados está localizado em D:\mydata\data, você pode criar o arquivo de opção e definir uma seção [mysqld] para especificar valores para os parâmetros basedir e datadir:

[mysqld]
# defina basedir com o seu caminho de instalação basedir=D:/mysql
# defina datadir com o local do diretório de dados,
datadir=D:/mydata/data

Note que os nome de caminho do Windows são específicados em arquivos de opção usando barras normais em ves de barra invertida. Se você usar barras invertidas, você deve usá-las em dobro.

Outro modo de se gerenciar um arquivo de opção é usar a ferramenta WinMySQLAdmin. Você pode encontrar o WinMySQLAdmin no diretório bin de sua instalação MySQL, assim como um arquivo de ajuda contendo instruções para usá-lo. O WinMySQLAdmin tem a capacidade de editar os seus arquivos de opção, mas note o seguinte:

Agora você está pronto para testar o servidor.

Selecionando um Servidor Windows

Iniciado com o MariaDB 3.23.38, a distribuição Windows inclui ambos binários, normal e o MySQL-Max. Aqui está uma lista dos diferentes servidores MariaDB dos quais você pode escolher:

Binario Descrição
mysqld Compilado com debugger integral e conferência automática de alocação de memória, links simbólicos, BDB e tabelas InnoDB.
mysqld-opt Binário otimizado. A partir da versão 4.0 o InnoDB está habilitado. Antes desta versão, este servidor não tem suporte a tabelas transacionais.
mysqld-nt Binário otimizado para NT/2000/XP com suporte para named pipes.
mysqld-max Binário otimizado com suporte para links simbólicos, tabelas BDB e InnoDB.
mysqld-max-nt Como o mysqld-max, porém compilado com suporte para named pipes.

Todos os binários acima são otimizados para processadores Intel modernos mas deve funcionar em qualquer processador Intel i386 ou melhor.

Os servidores mysqld-nt e mysqld-max-nt suportam conexões named pipe. Se você usar um destes servidores, o uso de named pipes está sujeito a estas condições:

Iniciando o Servidor pela Primeira Vez

No Windows 95, 98, ou Me, cliente MariaDB sempre se conecta ao servidor usando TCP/IP. Nos sistemas baseados no NT, como o Windows NT, 2000, ou XP, os clientes possuem duas opções. Eles podem usar TCP/IP, ou eles podem usar um named pipe se o servidor suportar conexões named pipes.

Para informações sobre qual servidor binário executar, veja 'Preparando o Ambiente MariaDB do Windows'.

Esta seção lhe dá um visão geral da inicialização de um servidor MySQL. A seguinte seção fornce informação mais específica para versões particulares do Windows.

Os exemplos nesta seção assumem que o MariaDB está instalado sob a localização padrão, C:\mysql. Ajuste o caminho mostrado nos exemplos se você tiver o MariaDB instalado em um local diferente.

Fazer um teste a partir do prompt de comando do em uma janela de console (uma janela DOS) é a melhor coisa a fazer porque o servidor mostra a mensagem de status que aparece na janela do DOS. Se alguma coisa estiver errado com sua configuração, estas mensagens tornarão mais fácil para você de identificar e corrigir qualquer problema.

Tenha certeza que você está no diretório onde o servidor é localizado e então entre este comando:

shell> mysqld --console

Para servidores que incluem suporte InnoDB, você deve ver as seguintes mensagens assim que o servidor iniciar:

InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200
InnoDB: Database physically writes the file full: wait...
InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280
InnoDB: Doublewrite buffer not found: creating new InnoDB: Doublewrite buffer created InnoDB: creating foreign key constraint system tables InnoDB: foreign key constraint system tables created
011024 10:58:25 InnoDB: Started

Quando o servidor finaliza sua sequência de inicialização, você deve ver algo como abaixo, que indica que o servidor está pronto para o conexão com o cliente:

mysqld: ready for connections Version: '4.0.14-log' socket: '' port: 3306

O servidor continuará a gravar no console qualquer saída de diagnóstico adicional que ele produza. Você pode abrir uma nova janela de console na qual se executará os programas clientes.

Se você omitir a opção --console, o servidor grava a saída do diagnóstico no log de erro no diretório de dados. O log de erro é o arquivo com a extensão .err.

Iniciando o MariaDB no Windows 95, 98, ou Me

No Windows 95, 98 ou Me, o MariaDB usa TCP/IP para conectar um cliente a um servidor. (Isto permitirá que qualquer máquina na sua rede se conecte a seu servidor MySQL.) Por isto, você deve ter certeza de que o suporte TCP/IP está instalado na sua máquina antes de iniciar o MariaDB. Você pode encontrar o TCP/IP no seu CD-ROM do Windows.

Note que se você estiver usando uma versão antiga do Win95 (por exemplo, OSR2). É preferível que você use um pacote antigo Winsock; para o MariaDB é necessário o Winsock 2! Você pode obter o Winsock mais novo em http://www.microsoft.com. O Windows 98 tem a nova biblioteca Winsock 2, portanto não é necessário atualizar a biblioteca.

Para iniciar o servidor mysqld, você deve iniciar uma janela do Prompt (Janela MS-DOS) e digitar:

shell> C:\mysql\bin\mysqld

Isto irá iniciar o mysqld em segundo plano. Isto é, depois do servidor iniciar, você deve ver outro prompt de comando. (Note que se você iniciar o servidor deste modo no Windows NT, 2000 ou XP, o servidor irá executar em segundo plano e nenhum prompt de comando aparecerá até que o servidor finalize. Por isto, você deve abrir outro prompt de comando para executar programas clientes enquanto o servidor estriver em execução.)

Você pode finalizar o servidor MariaDB executando:

shell> C:\mysql\bin\mysqladmin -u root shutdown

Isto chama o utilitário administrativo do MariaDB mysqladmin para conectar ao servidor e manda-lo finalizar. O comando conecta como root que é a conta administrativa padrão no sistema de permissões do MariaDB. Por favor, note que o sistema de permissões do MariaDB é totalmente independente de qualquer login de usuário sob o Windows.

Se o mysqld não iniciar, por favor, verifique o log de erro para ver se o servidor escreveu alguma mensagem que possa indicar a causa do problema. Você pode também tentar iniciar o servidor com mysqld --console; neste caso, você pode obter alguma informação útil na tela que pode ajudar a resolver o problema.

A última opção é iniciar o mysqld com --standalone --debug. Neste caso o mysqld irá escrever em um arquivo log C:\mysqld.trace que deve conter a razão pela qual o mysqld não inicia. Leia Seção E.1.2, 'Criando Arquivos Trace (Rastreamento)'.

Use mysqld --help para mostrar todas as opções que o mysqld entende!

Iniciando o MariaDB no Windows NT, 2000, ou XP

Na família NT (Windows NT, 2000 ou XP) o modo recomendado de executar o MariaDB é instalá-lo como um serviço do Windows. O Windows então inicia e para o servidor MariaDB automaticamente quando o Windows inicia e para. Um servidor instalado como um serviço também pode ser controlado a partir da linha de comando usando os comandos NET, ou com o utilitário gráfico Serviços.

O utilitário Serviços (o Service Control Manager do Windows) pode ser encontrado no Painel de Controle do Windows (em Ferramentas Administrativas no Windows 2000). É recomendado que se feche o utilitário Serviços enquanto realiza a operações de instalação ou remoção do servidor a partir desta linha de comando. Isto evita alguns erros estranhos.

Para ter o MariaDB funcionando com TCP/IP no Windows NT 4, você deve instalar o service pack 3 (ou mais novo)!

Antes de instalar o MariaDB como um serviço, você deve primeiro parar o servidor atual em execução usando o seguinte commando:

shell> C:\mysql\bin\mysqladmin -u root shutdown

Isto chama o utilitário administrativo do MariaDB mysqladmin para conectar ao servidor e mandá-lo parar. O comando conecta com root que é a conta administrativa padrão no sistema de permissões do MariaDB. Por favor, note que o sistema de permissões do MariaDB é totalmente independente de qualquer login de usuário sob o Windows.

Agora instale o servidor como um serviço:

shell> mysqld --install

Se você não definir um nome para o serviço, ele é instalado com o nome MariaDB. Uma vez instalado, ele pode ser imediatamente iniciado a partir do utilitário Serviços, ou usando o comando NET START MySQL. (Este comando é caso insensitivo).

Uma vez em execução, o mysqld pode ser parado usando o utilitário de Serviços ou usando o comando NET STOP MySQL, ou o comando mysqladmin shutdown.

Se você tiver problemas instalando o mysqld como um servico usando apenas o nome do servidor, tente instalá-lo usando seu caminho compelto:

shell> C:\mysql\bin\mysqld --install

A partir do MariaDB 4.0.2, você pode especificaro nome do serviço depois da opção --install. A partir do MariaDB 4.0.3, você pode especificar uma opção --defaults-file depois do nome do serviço para indicar onde o servidor deve obter opções ao iniciar. A regras que determinam o nome do serviço e os arquivos de opção que o servidor usa são as seguintes:

Nota: Antes do MariaDB 4.0.17, um servidor instalado como um serviço do Windows tinha problema na inicialização se o seu caminho ou nome do serviço possuisse espaços. Por esta razão, evite instalar o MariaDB em um diretório como C:\Program Files ou usar um nome de serviço contendo espaço.

No caso normal que você instala o servidor com --install mas nenhum nome de serviço, o servidor é instalado com um nome de serviço de MariaDB.

Como um exemplo mais complexo, considere o seguinte comando:

shell> C:\mysql\bin\mysqld --install mysql --defaults-file=C:\my-opts.cnf

Aqui, um nome de serviço é dado depois de opção --install. Se nenhuma opção --defaults-file for dada, este comando teria o efeito de fazer o servidor ler o grupo [mysql] a partir do arquivo de opções padrão. (Isto seria uma má idéia, porque aquele grupoo de opção é para ser usado pelo programa cliente MariaDB.) No entanto, como a opção --defaults-file está presente, o servidor lê as opções apenas a partir do arquivo indicado, e apenas do grupo de opção [mysqld].

Você também pode especificar as opções como Parâmetros de inicialização no utilitário de Serviços do Windows antes de você iniciar o serviço MariaDB.

Uma vez que o servidor MariaDB é instalado, o Windows irá iniciar o serviço automaticamente sempre que o Windows inicia. O serviço também pode ser iniciado imediatamente a partir do utilitário Serviços ou usando o comando NET START MYSQL. O comando NET não é caso sensitivo.

Note que quando executado como um serviço, o mysqld não têm acesso a um console e então nenhuma mensagem pode ser vista. Se o mysqld não iniciar, verifique o log de erros par ver se o servidor gravou alguma mensagem lá indicando a causa do problema. O log de erro está localizado no diretório c:\mysql\data. É o arquivo com um sufixo .err.

Quando o mysqld está executando como um serviço, ele pode ser parado usando o utilitários Serviços, o comando NET STOP MYSQL, ou o comando mysqladmin shutdown. Se o serviçp estiver em execução quando o Windows desliga, o Windows irá parar o servidor automaticamente.

A partir do MariaDB versão 3.23.44, você pode escolher entre instalar o servidor como um serviço Manual se você não deseja que os serviços sejam executados automaticamente durante o processo de inicialização. Para fazer isto, use a opção --install-manual em vez da opção --install.

shell> C:\mysql\bin\mysqld --install-manual

Para remover um serviço que está instalado como um serviço, primeiro pare-o se ele estiver em execução. Então use a opção --remove para removê-lo:

shell> mysqld --remove

Um problema com a finalização automática do serviço MariaDB é que, para versões do MariaDB anteriores a 3.23.49, o Windows esparava apenas por alguns segundos para o desligamento completo, e matava os processos do servidor de banco de dados se o tempo limite fosse excedido. Isto potencialmente causava problemas. (Por exemplo, o mecanimo de armazenamento InnoDB deverá fazer uma recuperação de falhas na próxima inicialização). A partir do MariaDB 3.23.49, o Windows irá esperar mais para que a finalização do MariaDB Server esteja completa. Se você notar que ainda não é o suficiente para a sua instalação, não é seguro executar o MariaDB Server como um serviço. Em vez disso, execute-o a partir do prompt de comando, e finalize-o com mysqladmin shutdown.

A alteração para avisar para o Windows para esperar mais quando parar o servidor MariaDB funciona apenas com o Windows 2000 e XP, mas não para o Windows NT. No NT, o Windows espera apenas 20 segundos para que o serviço seja finalizado, e depois desso ele mata o processo do serviço. Você pode aumentar este padrão abrindo o Editor de Registro (\winnt\system32\regedt32.exe) e editar o valor de WaitToKillServiceTimeout em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control na árvore do Registro. Especifique o novo valor mais largo em milisegundos (por exemplo 12000 para que o Windows NT espere até 120 segundos).

Se você não quiser iniciar o mysqld como um serviço, você pode iniciá-lo a partir da linha de comando do mesmo modo que em versões do Windows que não são baseados no NT. Para instruções use 'Iniciando o MariaDB no Windows 95, 98, ou Me'.

Executando o MariaDB no Windows

O MariaDB suporta TCP/IP em todas as plataformas Windows. Os servidores mysqld-nt e mysql-max-nt suportam named pipes no NT, 2000 e XP. No entanto, o padrão é usar TCP/IP, independente da plataforma:

A partir da versão 3.23.50, named pipes só está habilitado para o mysqld-nt e mysql-max-nt se eles forem iniciados com a opção --enable-named-pipe.

Você pode forçar que um cliente MariaDB use named pipes especificando a opção --pipe ou especificando . como nome de máquina. Use a opção --socket para especificar o nome do pipe. No MySQL, você deve usar a opção --protocol=PIPE.

Você pode testar se o MariaDB está funcionando executando qualquer dos seguintes comandos:

C:\> C:\mysql\bin\mysqlshow
C:\> C:\mysql\bin\mysqlshow -u root mysql
C:\> C:\mysql\bin\mysqladmin version status proc
C:\> C:\mysql\bin\mysql test

Se o mysqld está lento para responder a suas conexões no Win95/Win98, provavelmente existe um problema com seu DNS. Neste caso, inicie o mysqld com a opção --skip-name-resolve e use somente localhost e números IP na coluna Host das tabelas de permissões do MariaDB.

Existem duas versões da ferramenta de linha de comando MySQL:

Binario Descrição
MariaDB Compilado em Windows nativo, oferecendo capacidades de edição de texto muito limitadas.
mysqlc Compilado com o compilador Cygnus GNU, que oferece edição readline.

Se você desejar usar o mysqlc, deve ter uma cópia da biblioteca cygwinb19.dll em algum lugar que o mysqlc possa encontrá-la. Se sua distribuição do MariaDB não tiver esta biblioteca instalada no mesmo diretório que o mysqlc (o diretório bin sob o diretório base sa dua instalação do MariaDB). Se sua distribuição não tem a biblioteca cygwinb19.dll no diretório bin, olhe no diretório lib para encontrá-lo e copiá-lo para o seu diretório de sistema no Windows. (\Windows\system ou um lugar parecido).

Os privilégios padrões no Windows dão a todos usuários locais privilégios totais para todos os bancos de dados sem necessidade de especificar uma senha. Para deixar o MariaDB mais seguro, você deve configurar uma senha para todos os usuário e remover a linha na tabela mysql.user que tem Host='localhost' e User=''.

Você também deve adicionar uma senha para o usuário root. O exemplo seguinte exemplo inicia removendo o usuário anônimo que tem todos os privilégios, e então configura uma senha para o usuário root:

C:\> C:\mysql\bin\mysql mysql
mysql> DELETE FROM user WHERE Host='localhost' AND User='';
mysql> FLUSH PRIVILEGES;
mysql> QUIT
C:\> C:\mysql\bin\mysqladmin -u root password your_password

Depois de configurar a senha, se você desejar desligar o servidor mysqld, você pode usar o seguinte comando:

C:\> mysqladmin --user=root --password=sua_senha shutdown

Se você estiver usando o servidor de uma antiga versão shareware do MariaDB versão 3.21m o comando mysqladmin para configurar uma senha irá falhar com um erro: parse error near 'SET password'. A correção para este problema é atualizar para uma versão mais nova do MariaDB.

Com as versões atuais do MariaDB você pode facilmente adicionar novos usuários e alterar privilégios com os comandos GRANT e REVOKE. Leia 'A Sintaxe de GRANT e REVOKE'.

Instalando o MariaDB no Linux

O modo recomendado para instalar o MariaDB no Linux é usando um arquivo RPM. Os RPMs do MariaDB atualmente são construídos na versão 7.3 do sistema Suse Linux mas deve funcionar em outras versões de Linux que suportam rpm e usam glibc.

Se você tiver problemas com um arquivo RPM (por exemplo, se você receber o erro ``Sorry, the host 'xxxx' could not be looked up''), veja 'Notas Linux para distribuições binárias'.

Na maioria dos casos, você só precisa instalar os pacotes servidor MySQL e o cliente MySQL para ter uma instalação funcional do MariaDB. Os outros pacotes não são exigidos para uma instalação padrão. Se você quiser executar um servidor MariaDB Max que tenha capacidades adicionais, você deve instalar o RPM MySQL-Max depois de instalar o RPM MySQL-server. Leia 'mysqld-max, om servidor mysqld extendido'.

Se você tiver um dependência de falha ao tentar instalar os pacotes do MariaDB (ex.: error: removing these packages would break dependencies: libmysqlclient.so.10 is needed by ...), você também deve instalar o pacote MySQL-shared-compat, o qual inclui ambas as bibliotecas para compatibilidade com versões anteriores (libmysqlclient.so.12 para MariaDB e libmysqlclient.so.10 para MariaDB 3.23).

Muitas distribuições Linux ainda vêm com o MariaDB 3.23 a elas normalmente ligam as aplicações dinamicamente para economizar espaço em disco. Se estas bibliotecas compartilhadas estão em pacotes separados (ex.; MySQL-shared), é suficiente simplesmente deixar estes pacotes instalados e apenas atualizar os pacotes do servidor e cliente MariaDB (que são estaticamente ligados e não dependem de bibliotecas compartilhadas). Para distribuições que incluem as bibliotecas compartilhadas no mesmo pacote que o servidor MariaDB (ex.: Red Hat Linux), você também pode instalar nosso RPM MySQL-shares 3.23 ou usar o pacote compatível com MySQL-shared.

Os seguintes pacotes RPM estão disponíveis:

Para ver todos os arquivo em um pacote RPM, (por exemplo, um RPM MySQL-server), execute:

shell> rpm -qpl MySQL-server-VERSION.i386.rpm

Para realizar uma instalação mínima padrão, execute:

shell> rpm -i MySQL-server-VERSION.i386.rpm MySQL-client-VERSION.i386.rpm

Para instalar somente o pacote cliente, execute:

shell> rpm -i MySQL-client-VERSION.i386.rpm

O RPM fornece um recurso para verificar a integridade e autenticidade dos pacotes antes de instalá-los. Se você quiser aprender mais sobre este recurso, veja 'Verificando a Integridade do Pacote Usando MD5 Checksums ou GnuPG'.

O RPM coloca dados sob o /var/lib/mysql. O RPM também cria as entradas apropriadas em /etc/rc.d/ para iniciar o servidor automaticamente na hora do boot. (Isto significa que se você realizou uma instalação anterior e fez alterações em seu script de inicialização, você pode desejar criar uma cópia do script para que você não perca ao instalar um RPM mais novo). Veja 'Inicializando e parando o MariaDB automaticamente.' para mais informações sobre como o MariaDB pode ser iniciado automaticamente na inicialização do sistema.

Se você quiser instalar o RPM do MariaDB em uma distribuição Linux mais antiga que não suporte scripts de inicialização no /etc/init.d (diretamente ou via link simbólico), você deve criar um link simbólico que aponte para a localização onde o seu script de instalação está atualmente instalado. Por exemplo, se esta localização for /etc/rc.d/init.d, use estes comandos antes de intalar o RPM para criar /etc/init.d como um link simbólico que aponte lá:

shell> cd /etc; ln -s rc.d/init.d .

No entanto, todas as distribuições de Linux atuais já devem suportar este novo layout de diretório que usa /etc/init.d já que ele é exigido para compatibilidade LBS (Linux Standard Base).

Se o arquivo RPM que você instalar inclui o MySQL-server, o daemon mysqld deve estar pronto e em execução após a instalação. Agora você já deve poder iniciar o MariaDB. Leia 'Configurações e Testes Pós-instalação'.

Se alguma coisa der errado, você encontrar maiores informações no de instalação. Leia 'Instalando uma Distribuição Binária do MariaDB'.

Instalando o MariaDB no Mac OS X

A partir do MariaDB 4.0.11, você pode instalar o MariaDB no Mac OS X 10.2 (Jaguar) usando um pacote do binário do Mac OS X PKG em vez da distribuição binário em tarball. Note que versões mais antigas do Mac OS X (ex.: 10.1.x) não são suportadas por este pacote.

Este pacote está localizado dentro de um arquivo de imagem de disco (.dmg). que você primeiro precisa montar com um duplo clique em sua ícone no Finder. Ele deve então montar a imagem e exibir o seu conteúdo.

NOTA: Antes de proceder com a instalação, tenha certeza que você finalizou todas as instâncias do MariaDB em execução usando o MariaDB Manager Aplication (no Mac OS X Server) ou via mysqladmin shutdown na linha de comando.

Para relamente instalar o MariaDB PKG, de um duplo clique na ícone do pacote. Isto inicia o Mac OS Package Installer, que irá guia-lo pela instalação do MariaDB.

O Mac OS X PKG do MariaDB irá se instalar em /usr/local/mysql-<version> e também instalrá um link simbólico /usr/local/mysql, apontando para a nova localização. Se um diretório chamado /usr/local/mysql já existe, ele será renomeado para /usr/local/mysql.bak em primeiro lugar. Adicionalmente, ele irá instalar a tabela de permissões do banco de dados MariaDB executando mysql_install_db depois da instalação.

O layout de instalação é similar a aquele da distribuição binária, todos os binários do MariaDB estão localizados no diretório /usr/local/mysql/bin. O socket MariaDB será colocado em /tmp/mysql.sock por padrão. Leia 'Layouts de Instalação'.

A instalação do MariaDB exige uma conta de usuário do Mac OS X chamada MariaDB (uma conta de usuário com este nome existe por padrão no Mac OS X 10.2 e acima).

Se você estiver executando o MAC OS X Server, você já terá uma versão do MariaDB instalado:

Esta seção do manual cobre a instalação apenas do MariaDB Mac OS X PKG oficial. Leia o ajuda da Apple sobre a instalação do MariaDB (Execute o aplicativo Help View, selecione a ajuda do Mac OS X Server e faça uma busca por MySQL e leia o item entitulado Installing MySQL).

Note especialmente, que a versão pré-instalada do MariaDB no Mac OS X Server é iniciado com o comando safe_mysqld em vez de mysqld_safe.

Se anteriormente você usava pacotes do MariaDB de Marc Liyanage para Mac OS X de http://www.entropy.ch, você pode simplesmente seguir as intruções de atualização para pacotes usando o layout de instalação dos binário como dados em suas páginas.

Se você está atualizado da versão 3.23.xx de Marc ou do versão Mac OS X Server do MariaDB para o MariaDB PKG oficial, você também deve converter a tabela de privilégios do MariaDB existente para o formato atual, porque alguns novos privilégios de segurança foram adicionados. Leia 'Atualizando a Tabela de Permissões'.

Se você preferisse iniciar automaticamente o MariaDB durante o boot do sistema, você tambén precisa instalar o MariaDB Startup Item. A partir do MariaDB 4.0.15, ele é parte do disco de instalação do Mac OS X como um pacote de instalação separado. Simplesmente de um duplo clique no ícone MySQLStartupItem.pkg e siga as instruções para instalá-lo.

Note que isto só precisa ser feito uma vez! Não há necessidade de se instalar o Startup Item toda vez que se atualizar o pacote do MariaDB.

Devido a um erro no instalador de pacotes do Mac OS X, algumas vezes você pode ver a mensagem de erro You cannot install this software on this disk. (null) no diálogo de seleção do disco de destino. Se este erro ocorrer, simplesmente clique no botão Go Back uma vez para retornar a tela anterior. Agora clique em Continue para avançar para a seleção do disco de destino novamente - agora você deve estar apto a escolher o disco destino corretamente. Nós informamos este erro a Apple e eles estão investigando este problema.

O Startup Item será instalado em /Library/StartupItems/MySQL. Ele adiciona uma variável MYSQLCOM=-YES- ao arquivo de configuração do sistema (/etc/hostconfig). Se você desejasse diasbilitar a inicialização automática do MariaDB, simplesmente altere o valor desta variável para MYSQLCOM=-NO-.

No Mac OS X Server, o script de instalação do Startup Item disabilitará automaticamente a inicialização da instalação padrão do MariaDB alterando a variável MariaDB em /etc/hostconfig para MYSQL=-NO-. Isto é para evitar conflitos na inicialização. No entanto, ele não desliga um servidor MariaDB ajá em execução.

Depois da instalação, você pode iniciar o MariaDB executando os seguintes comandos em um janela de terminal. Note qye você preceisa ter privilégios de administrador para realizar esta tarefa.

Se você tiver instalado o Startup Item:

shell> sudo /Library/StartupItems/MySQL/MySQL start
(Enter your password, if necessary)
(Press Control-D or enter 'exit' to exit the shell)

Se você não tiver instalado o Startup Item, digite a seguinte sequência de comandos:

shell> cd /usr/local/mysql
shell> sudo ./bin/mysqld_safe
(Enter your password, if necessary)
(Press Control-Z)
shell> bg
(Press Control-D or enter 'exit' to exit the shell)

Agora você deve conseguir se conectar ao servidor MySQL, ex.: executando /usr/local/mysql/bin/mysql

Se você instalar o MariaDB pela primeira vez, lembre-se de consigurar uma senha para o usuário root do MariaDB!

Isto é feito com os seguintes comandos:

/usr/local/mysql/bin/mysqladmin -u root password <password>
/usr/local/mysql/bin/mysqladmin -u root -h `hostname` password <password>

Por favor, tenha certeza que o comando hostname na segunda linha está entre crases (`), assim a shell pode substituí-la com a saída deste comando (o nome da máquina deste sistema)!

Você também pode querer adicionar aliases ao seu arquivo de resursos do sheel para acessar MariaDB e mysqladmin da linha de comando:

alias mysql '/usr/local/mysql/bin/mysql'
alias mysqladmin '/usr/local/mysql/bin/mysqladmin'

De forma alternativa, você pode simplesmente adicionar /usr/local/mysql/bin a sua variável de ambiente PATH, ex.: adicionando o seguinte ao arquivo $HOME/.tcshrc:

setenv PATH ${PATH}:/usr/local/mysql/bin

Note que instalar um novo MariaDB PKG não remove o diretório de uma instalação mais antiga. Infelizmente o Mac OS X Installer ainda não oferece a funcionalidade exigida para atualizar apropriadamente pacotes instalados anteriormente.

Depois de copiar os arquivos de banco de dados do MariaDB sobre os da versão anterior e inicializar o nova versão corretamente, você deve remover os arquivos da instalação antiga para economizar espaço em disco. Adicionalmente você também deve remover versões mais antigas do diretório do Package Receipt localizados em /Library/Receipts/mysql-<version>.pkg.

Instalando o MariaDB no NetWare

Instalando o MariaDB para Binários do NetWare

A partir da versão 4.0.11, o MariaDB está disponível para a Novell NetWare na forma de pacote do binário. Para servir o MySQL, o servidor NetWare deve suprir estas exigências:

O pacote binário para o NetWare pode ser obtido em http://www.mysql.com/downloads/.

Se você estiver executando o MySL no NetWare 6.0, sugerimos que você utilize a opção --skip-external-locking na linha de comando. Também será necessário utilizar CHECK TABLE e REPAIR TABLE em vez de myisamchk, porque myisamchk faz uso de lock externo. Lock externo possui problemas com NetWare 6.0; o problema foi eliminado no NetWare 6.5.

Instalando o MariaDB para Binários do NetWare

  1. Se você estiver atualizando de um instaação anterior, para o servidor MySQL. Isto é feito a partir do console do servidor, usando:

    SERVER: mysqladmin -u root shutdown
    
  2. Conecte-se no servidor alvo a partir de uma máquina cliente com acesso ao local onde você instalará o MariaDB.
  3. Extraia o pacote zip binário em seu servidor. Tenha certeza de permitir que os caminhos no arquivo zip sejam usados. É seguro simplesmente extrair os arquivos para SYS:\.

    Se você estiver atualizando de uma instalando anterior, você pode precisar copiar os diretórios de dados (ex.: SYS:MYSQL\DATA) agora, assim como my.cnf se você o tiver costumizado. Você pode então deletar a cópia antiga do MariaDB.

  4. Você pode desejar renomear o diretório para algo mais consistente e fácil de usar. Recomendamos usar o SYS:MYSQL; exemplos no manual o usarão para se referir ao diretório de instalação em geral.
  5. No console do servidor, adicione um caminho de busca no diretório contendo os NLMs do MariaDB. Por exemplo:

    SERVER: SEARCH ADD SYS:MYSQL\BIN
    
  6. Instale o banco de dados inicial, se necessário, digitando mysql_install_db no console do servidor.
  7. Inicie o servidor MariaDB usando mysqld_safe no console do servidor.
  8. Para finalizar a instalação, você também deve adicionar os seguintes comandos ao autoexec.ncf. Por exemplo, se sua instalação do MariaDB está em SYS:MYSQL e você quiser que o MariaDB inicie automaticamente, você pode adicionar estas linhas:

    #Starts the MariaDB 4.0.x database server SEARCH ADD SYS:MYSQL\BIN MYSQLD_SAFE
    

    Se você estiver usando NetWare 6.0, você deve adicionar o parâmetro --skip-external-locking:

    #Starts the MariaDB 4.0.x database server SEARCH ADD SYS:MYSQL\BIN MYSQLD_SAFE --skip-external-locking
    

Se houver uma instalação existente do MariaDB no servidor, verifique a existencia de comandos de inicialização do MariaDB em autoexec.ncf, e edite ou delete-os se necessário.

Detalhes Gerais de Instalação

Como obter o MySQL
Verificando a Integridade do Pacote Usando MD5 Checksums ou GnuPG
Sistemas Operacionais suportados pelo MySQL
Qual versão do MariaDB deve ser usada
Layouts de Instalação
Como e quando as atualizações são lançadas?
Filosofia das Distribuições - Nenhum Bug Conhecidos nas Distribuições
Binários MariaDB compilados pela MariaDB Foundation
Instalando uma Distribuição Binária do MariaDB

Como obter o MariaDB

Confira a homepage da MariaDB homepage (http://www.mysql.com/) 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 MariaDB e como relatar um mirror ruim ou desatualizado.

Verificando a Integridade do Pacote Usando MD5 Checksums ou GnuPG

Depois de fazer o download do pacote MariaDB 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 MariaDB Foundation 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 MariaDB. 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 MariaDB Foundation 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 MariaDB 4.0.10 (Fevereiro de 2003), a MariaDB Foundation 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 MariaDB Foundation (<build@mysql.com>). 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
 MariaDB 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 MariaDB 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 usuário). Para importar a chave pública do MariaDB 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 <webmaster@mysql.com> ou <build@mysql.com>.

Sistemas Operacionais suportados pelo MariaDB

Nós ulitizamos o GNU Autoconf, para que seja possível portar o MariaDB 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 MariaDB compila corretamente nas seguintes combinações de sistema operacional/pacote de thread:

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

Baseado nos critérios acima, as melhores plataformas para a execução do MariaDB 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 MariaDB 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 MariaDB 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 MariaDB necessita para uma melhor execução, envie um e-mail para lista de email insternals do MariaDB. Leia 'As Listas de Discussão do MariaDB'.

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 MariaDB na sua configuração.

Qual versão do MariaDB 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:

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:

O esquema de nomes do MariaDB 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:

No processo de desenvolvimento do MariaDB, 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.

Todas as versões do MariaDB 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:

Outro teste é que nós usamos a versão do MariaDB 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.

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ório Conteúdo do diretório
bin Programas clientes e o servidor mysqld
data Arquivos Log, bancos de dados
docs Documentação, Log de alterações
include Arquivos de cabeçalho (headers)
lib Bibliotecas
scripts mysql_install_db
share/mysql Arquivos de mensagem de erro
sql-bench Benchmarks - 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ório Conteúdo do diretório
bin Programas clientes e scripts
include/mysql Arquivos de cabeçalho (headers)
info Documentação no formato Info
lib/mysql Bibliotecas
libexec O servidor mysqld
share/mysql Arquivos com mensagens de erros
sql-bench Benchmarks e o teste crash-me
var Bancos 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:

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

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

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

Também tentamos ajudar usuários que solicitam recursos que são de fácil implementação. Tomamos notas do que nossos usuários 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. Leia Apêndice D, Histórico de Alterações do MariaDB.

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

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 MariaDB 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. Leia 'Qual versão do MariaDB deve ser usada'.

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 MariaDB 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. Leia '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 usuários esteja ciente.

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

Binários MariaDB compilados pela MariaDB Foundation

Como um serviço, nós na MariaDB Foundation fornecemos um conjunto de distribuições binárias do MariaDB 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 'Instalação rápida padrão do MariaDB'), 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 MariaDB Foundation:

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

As seguintes opções de compilação foram usadas nos pacotes binários que a MariaDB Foundation 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.

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 MariaDB. Leia 'As Listas de Discussão do MariaDB'.

Distribuições RPM que anteceda o MariaDB versão 3.22 são contribuições dos usuários. Os RPMs gerados por nós da MariaDB Foundation só começaram a ser fornecidos a partir da versão 3.22 do MariaDB.

Se você deseja compilar uma versão para depuração do MariaDB, 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 'Instalando o MariaDB no Windows'.

Instalando uma Distribuição Binária do MariaDB

Este cobre a instalação da distribuição binária do MariaDB (.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 'Instalação rápida padrão do MariaDB' para mais informações sobre como\ intalá-los.

As distribuições genéricas do MariaDB 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 MariaDB:

Se você tiver problemas, sempre use mysqlbug ao enviar dúvidas para a lista de email do MariaDB. 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. Leia 'Como relatar erros ou problemas'.

Os comando básicos que você deve executar para instalar e usar uma distribuição binária do MariaDB 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 MariaDB é mais antiga que a 4.0, substitua bin/safe_mysqld por bin/mysqld_safe no comando final.

Você pode adicionar novos usuários 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 '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 MariaDB é 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 'Como obter o MySQL'.

    As distribuições binárias do MariaDB 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. Leia 'mysqld-max, om servidor mysqld extendido'. Note que todos os binários são contruídos a partir da mesma distribuição fonte do MariaDB.
  4. Adicione um usuário e grupo para o mysqld ser executado:

    shell> groupadd mysql
    shell> useradd -g mysql mysql
    

    Estes comandos adicionam o grupo MariaDB e o usuário MariaDB. 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 usuário com outro nome, diferente de MariaDB.

  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 MariaDB. 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 MariaDB de forma apropriada. See Apêndice F, Variáveis de Ambientes do MariaDB.

    • scripts

      Este diretório contém o script mysql_install_db usado para inicializar o banco de dados MariaDB 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 MariaDB está em um local diferente do padrão, você deve alterar a localização para onde o mysqlaccess espera encontrar o cliente MariaDB. 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 MariaDB 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 MariaDB (necessário apenas se você não tiver instalado o MariaDB anteriormente):

    shell> scripts/mysql_install_db
    

    Note que as versões mais antigas que a 3.22.10 iniciam o servidor MariaDB 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 usuário 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 usuário root, o segundo altera o atributo owner do diretório de dados para o usuário MariaDB e o terceiro altera o atributo group para o grupo MariaDB.

  11. Se você quiser instalar o suporte para a interface Perl DBI/DBD, veja 'Comentários de Instalação do Perl'.
  12. Se você desejasse que o MariaDB 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 'Inicializando e parando o MariaDB automaticamente.'.

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

Você pode iniciar o servidor MariaDB 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 'mysqld-safe, o wrapper do mysqld' e Leia 'Configurações e Testes Pós-instalação'.

Instalando uma distribuição com fontes do MariaDB

Visão geral da instalação rápida
Aplicando patches
Opções típicas do configure
Instalando pela árvore de fontes do desenvolvimento
Lidando com Problemas de Compilação
Notas MIT-pthreads
Instalando o MariaDB a partir do Fonte no Windows

Antes de você continuar com as instalações dos fontes, confira antes se nosso binário está disponível para sua plataforma e se ela funcionará para você. Nós colocamos muito esforço para ter certeza que nossos binários são contruídos com as melhores opções possíveis.

Você precisa das seguintes ferramentas para contruir e instalar o MariaDB a partir do código fonte:

Se você estiver usando uma versão recente de gcc, recente o bastante para entender a opção -fno-exceptions, é MUITO IMPORTANTE que você a use. De outra forma, você pode compilar um binário que quebra randomicamente. Nós também recomendamos que você use -felide-constructors e -fno-rtti juntas com -fno-exception. Se estiver com dúvidas, faça o seguinte:

CFLAGS='-O3' CXX=gcc CXXFLAGS='-O3 -felide-constructors -fno-exceptions \
 -fno-rtti' ./configure --prefix=/usr/local/mysql --enable-assembler \
 --with-mysqld-ldflags=-all-static

Na maioria dos sistemas você irá obter um binário rápido e estável com essas opções.

Se você tiver problemas, SEMPRE USE mysqlbug quando postar questões para a lista de email do MariaDB Mesmo se o problema não for um bug, mysqlbug recolhe informações do sistema que facilitará aos outros resolverem seu problema. Por não suar mysqlbug, você perde a vantagem de ter seu problema resolvido! Você irá encontrar mysqlbug no diretório scripts depois de desempacotar a distribuição. Leia 'Como relatar erros ou problemas'.

Visão geral da instalação rápida

Os comandos básicos que você deve executar para instalar o MysQL a partir da distribuição fonte são:

shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> scripts/mysql_install_db
shell> chown -R root /usr/local/mysql
shell> chown -R mysql /usr/local/mysql/var
shell> chgrp -R mysql /usr/local/mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &

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

Se você deseja ter suporte para tabelas InnoDB, você deve editar o arquivo /etc/my.cnf e remover o caractere # antes dos parâmetros que iniciam com innodb_.... See 'Arquivo de Opções my.cnf'. Leia 'Opções de Inicialização do InnoDB'.

Se você iniciar de um RPM fonte, então faça o seguinte:

shell> rpm --rebuild --clean MySQL-VERSION.src.rpm

Isto irá criar um RPM binário que você pode instalar.

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

Segue uma descrição mais detalhada.

Para instalar uma distribuição fonte, siga os passos a seguir, então prossiga para 'Configurações e Testes Pós-instalação', para inicialização do pós-instalação e testes:

  1. Escolha o diretório sobre o qual você deseja descompactar a distribuição e vá para ele.
  2. Obtenha um arquivo de distribuição de algum dos sites listados em 'Como obter o MySQL'.
  3. Se você esta interessado em usar tabelas Berkeley DB com MySQL, você precisará obter uma versão com o patch do código fonte do Berkeley DB. Por favor leia o sobre tabelas Berkeley DB antes de continuar. Leia 'Tabelas BDB ou BerkeleyDB'.

    Distribuições fontes do MariaDB são fornecidas como arquivos tar compactados e tem nomes como mysql-VERSION.tar.gz, onde VERSION é um número como 5.0.6-beta.

  4. Adicione um usuário e grupo para o MariaDB executar assim:

    shell> groupadd mysql
    shell> useradd -g mysql mysql
    

    Estes comandos adicionam o grupo MariaDB e o usuário MariaDB. A sintaxe para useradd e groupadd podem mudar um pouco em diferentes versões de Unix. Elas podem também ser chamadas adduser e addgroup. Você pode escolher outros nomes para o usuário e grupo em vez de MariaDB.

  5. Descompacte a distribuição para o diretório corrente:

    shell> gunzip < /path/to/mysql-VERSION.tar.gz | tar xvf -
    

    Este comando cria um diretório com o nome mysql-VERSION.

  6. Mude para o diretório da distribuição descompactada:

    shell> cd mysql-VERSION
    

    Note que agora você deve configurar e construir o MariaDB a partir deste diretório raiz da distribuição. Você não pode construí-lo em um diretório diferente.

  7. Configure o release e compile tudo:

    shell> ./configure --prefix=/usr/local/mysql
    shell> make
    

    Quando você executar configure, você pode desejar especificar algumas opções. Execute ./configure --help para uma lista das opções. 'Opções típicas do configure', discute algumas das opções mais usadas.

    Se o configure falhar, e você for enviar uma mensagem para lista de email do MariaDB para pedir ajuda, por favor, inclua qualquer linhas de config.log que você acha que pode ajudar a resolver o problema. Também inclua as últimas linhas da saída de configure se o configure abortar. Envie o relatório de erros usando o script mysqlbug. Leia 'Como relatar erros ou problemas'.

    Se a compilação falhar, veja 'Lidando com Problemas de Compilação', para uma ajuda com um varios problemas comuns.

  8. Instalar tudo:

    shell> make install
    

    Você deve executar este comando como root.

  9. Crie as tabelas de permissões do MariaDB (necessárias só se você não tiver instalado o MariaDB anteriormente):

    shell> scripts/mysql_install_db
    

    Note que as versões do MariaDB anteriores à versão 3.22.10 iniciam o servidor MariaDB quando você executa mysql_install_db. Isto não acontece mais!

  10. Altere o dono dos binários para root e do diretório dados para o usuário que irá executar o mysqld:

    shell> chown -R root /usr/local/mysql
    shell> chown -R mysql /usr/local/mysql/var
    shell> chgrp -R mysql /usr/local/mysql
    

    O primeiro comando altera o atributo de proriedade dos arquivos para o usuário root, o segundo altera o atributo de propriedade do diretório de dados para o usuário MariaDB, e o terceiro altera o atributo de grupo para o grupo MariaDB.

  11. Se você deseja instalar suporte para a interface Perl DBI/DBD, veja 'Comentários de Instalação do Perl'.
  12. Se você deseja que o MariaDB inicie automaticamente quando você ligar sua máquina, você pode copiar support-files/mysql.server para o local onde seu sistema tem seus arquivos de incialização. Mais informações podem ser encontradas no próprio script support-files/mysql.server e em 'Inicializando e parando o MariaDB automaticamente.'.

Depois de tudo ter sido instalado, você deve iniciar e testar sua distribuição usando este comando:

shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &

Se a sua versão do MariaDB for mais antiga do que 4.0, substitua safe_mysqld por mysqld_safe no comando:

Se o comando falhar imediatamente com mysqld daemon ended então você pode achar alguma informação no arquivo diretório-dados-mysql/'nome_maquina'.err. A razão pode ser que você já possua outro servidor mysqld sendo executado. Leia 'Executando Múltiplos MariaDB Servers na Mesma Máquina'.

See 'Configurações e Testes Pós-instalação'.

Aplicando patches

Algumas vezes patches aparecem na lista de mensagens ou são colocados na área de patches do MariaDB. (http://www.mysql.com/downloads/patches.html).

Para aplicar um patch da lista de mensagens, salve a mensagem em que o patch aparece em um arquivo, mude para o diretório raiz da sua distribuição fonte de seu MariaDB e execute estes comandos:

shell> patch -p1 < patch-file-name
shell> rm config.cache
shell> make clean

Patches do site FTP são distribuídos como arquivos texto ou como arquivos compactados com gzip. Aplique um patch no formato texto como mostrado acima para patches da lista de mensagens. Para aplicar um patch compactado, mude para o diretório raiz da árvore fonte do MariaDB e execute estes comandos:

shell> gunzip < patch-file-name.gz | patch -p1
shell> rm config.cache
shell> make clean

Depois de aplicar um patch siga as instruções para uma instalação normal a partir dos fontes começando com o passo ./configure. Depois de executar o passo make install, reinicie seu servidor MySQL.

Você pode precisar derrubar algum servidor atualmente em execução antes de executar make install. (Use mysqladmin shutdown para fazer isto.) Alguns sistemas não lhe permitem instalar uma nova versão do programa se ele substitui agum que estiver em execução.

Opções típicas do configure

O script configure fornece uma grande gama de controle sobre como você configura sua distribuição MariaDB. Normalmente você faz isto usando opções na linha de comando do configure. Você também pode alterar configure usando algumas variáveis de ambiente. Leia Apêndice F, Variáveis de Ambientes do MariaDB. Para uma lista de opções suportadas pelo configure, execute este comando:

shell> ./configure --help

Algumas das opções mais usadas normalmente com o configure estão descritas a seguir:

Instalando pela árvore de fontes do desenvolvimento

CUIDADO: Você deve ler esta seção somente se você estiver interessado em nos ajudar a testar nossos novos códigos. Se você só deseja deixar o MariaDB funcionando em seus sistema, você deve usar uma distribuição padrão (pode ser uma distribuição binária ou fonte).

Para obter noss mais nova árvore de desenvolvimento, use estas instruções:

  1. Faça download do BitKeeper em http://www.bitmover.com/cgi-bin/download.cgi. Você precisará do Bitkeeper 3.0 ou posterior para acessar nosso repositório.
  2. Siga as instruções para instalá-lo.
  3. Depois que o BitKeeper estiver instalado, primeiro vá ao diretório no qual você deseja trabalhar e então use um dos seguintes comandos para clonar o ramo da versão MariaDB de sua escolha:

    Para clonar o ramo 3.23 (antigo), use este comando:

    shell> bk clone bk://mysql.bkbits.net/mysql-3.23 mysql-3.23
    

    Para clonar o ramo 4.0 (estável/produção), use este comando:

    shell> bk clone bk://mysql.bkbits.net/mysql-4.0 mysql-4.0
    

    Para clonar o ramo 4.1 alfa, use este comando:

    shell> bk clone bk://mysql.bkbits.net/mysql-4.1 mysql-4.1
    

    Para clonar o ramo de desenvolvimento 5.0, use este comando:

    shell> bk clone bk://mysql.bkbits.net/mysql-5.0 mysql-5.0
    

    Nos exemplos anteriores a árvore binária será configurada no subdiretório mysql-3.23/, mysql-4.0/, mysql-4.1/, ou mysql-5.0/ do diretório atual.

    Se você está atrás de um firewall e só pode iniciar conexões HTTP, você também pode o BitKeeper via HTTP.

    Se vocÊ precisa usar um servidor proxy, simplesmente configure a variável de ambiente http_proxy para apontar para o seu proxy:

    shell> export http_proxy='http://seu.servidor.proxy:8080/'
    

    Agora, simplesmente substitua o bk:// com o http:// ao fazer um clone. Exemplo:

    shell> bk clone http://mysql.bkbits.net/mysql-4.1 mysql-4.1
    

    O download inicial da árvore fonte pode demorar um pouco, dependendo da velocidade de sua conexão; seja paciente.

  4. Você precisará do GNU make, autoconf 2.53 (ou posterior), automake 1.5, libtool 1.4 e m4 para executar o próximo conjunto de comandos. Embora muitos sistemas operacionais já venham com suas próprias implementações do make, as chances de que a sua compilação falhe com mensagens de erros estranhas são altas. Consequentemente é altamente recomendado usar o GNU make (algumas vezes também chamado gmake).

    Felizmente, um grande número de sistemas operacionais já vem com a ferramente GNU pré instalada ou são fornecidos pacotes de instalação da mesma. De qualquer forma, elas podem ser encontradas nos seguintes locais:

    Se você estiver tentando configurar o MariaDB você também precisará do bison 1.75. Versões mais antigas do bison podem exiobir este erro: sql_yacc.yy:#####: fatal error: maximum table size (32767) exceeded. Nota: o tamanho máximo da tabela não é realmente excedido, o erro é causado por um bug nas versões mais novas do bison.

    Versões do MariaDB anteriores a 4.1 podem também compilar com outras implementações yacc (e.g. BSD yacc 91.7.30). Para versões posteriores, GNU bison é uma exigência.

    O comando comum para fazer em uma shell é:

    cd mysql-4.0
    bk -r edit aclocal; autoheader; autoconf; automake
    (cd innobase; aclocal; autoheader; autoconf; automake) # for InnoDB
    (cd bdb/dist; sh s_all ) # for Berkeley DB
    ./configure # Adicione suas opções favoritas aqui make
    

    Caso apareçam alguns erros estranhos durantes este estágio, confira se você realmente tem a libtool instalada!

    Uma coleção de nossos scripts de configuração padrões está localizada no subdiretório BUILD/. Se preferir, você pode usar BUILD/compile-pentium-debug. Para compilar em uma arquitetura diferente, modifique o script removendo opções que são específicas da arquitetura Pentium.

  5. Quando a construção estiver pronta, execute make install. Seja cuidadoso com isto em uma máquina de produção; o comando pode sobrescrever sua versão atual instalada. Se você tem outra instalação do MariaDB, nós recomendamos que você execute ./configure com valores diferentes para as opções prefix, tcp-port e unix-socket-path que as usadas pelo seu servidor em produção.
  6. Seja rígido com sua nova instalação e tente fazer com que os novos recursos falhem. Inicie executando make test. Leia Seção 14.1.2, 'Pacotes de Teste do MariaDB'.
  7. Se você chegar ao estágio make e a distribuição não compilar, por favor relate-o para <bugs@lists.mysql.com>. Se você instalou as últimas versões das ferramentas GNU exigidas, e elas falharam tentando processar nossos arquivos de configuração, por favor informe isto também. Entretanto, se você executar aclocal e obtêm um erro de command not found não o reporte.Tenha certeza que todas as ferramentas necessárias estejam instaladas e que sua variável PATH esteja corretamente configurada para que sua shell possa encontrá-la.
  8. Depois da operação inicial bk clone para obter a árvore fonte, você deve executar bk pull periodicamente para obter as atualizações.
  9. Você pode examinar o histórico de alterações para a árvore com todos os diffs usando bk sccstool. Se você ver alguns diffs estranhos ou código sobre o qual você tenha alguma dúvida, não hesite em enviar um e-mail para lista de email internals do MariaDB. Leia 'As Listas de Discussão do MariaDB'. Além disso, se você acha que tem uma idéia melhor em como fazer algo, envie um email para o mesmo endereço com um patch. bk diffs irá produzir um patch para você após fazer as alterações no código fonte. Se você não tiver tempo para codificar sua idéia, apenas envie uma descrição.
  10. BitKeeper tem um ótimo utilitário de ajudar que você pode acessar via bk helptool.
  11. Note que qualquer commit (bk ci ou bk citool) irá disparar o envio da mensagem com as alterações para nossa lista de email internos, bem como a submissão openlogging.org usual apenas com os comentários da alteração. Geralmente você não precisar usar commit (já que o árvore pública não permitirá bk push), mas é preferível usar o método bk diffs descrito arteriormente.

Você também pode procurar alterações, comentários e código fonte online procurando por ex. http://mysql.bkbits.net:8080/mysql-4.1 para MariaDB 4.1.

O manual está em uma árvore separad que pode ser clonada com:

shell> bk clone bk://mysql.bkbits.net/mysqldoc mysqldoc

Existe também um árvore pública do BitKeeper para o MariaDB Control Center e Connector/ODBC. Eles podem ser clonados da seguintes forma, respectivamente:

Para clonar o MariaDB Control center, use o seguinte comando:

shell> bk clone http://mysql.bkbits.net/mysqlcc mysqlcc

Para clonar o Connector/ODBC, use o seguinte comando:

shell> bk clone http://mysql.bkbits.net/myodbc3 myodbc3

Lidando com Problemas de Compilação

Todos programas MariaDB compilam de forma limpa sem alertas no solaris usando gcc. Em outros sistemas, alertas podem ocorrer devido a diferenças em arquivos include dos sistemas. Veja 'Notas MIT-pthreads' para avisos que podem ocorrer usando MIT-pthreads. Para outros problemas, confira a lista abaixo.

A solução para vários problemas envolve reconfiguração. Se você precisa reconfigurar, faça notas do seguinte:

Para prevenir antigas informações de configurações ou arquivos objetos de serem usados, execute estes comandos antes de re-executar configure:

shell> rm config.cache
shell> make clean

Uma alternativa, seria executar make distclean

A lista abaixo descreve alguns dos problemas compilando o MariaDB que tem sido encontrados com mais frequencia:

Notas MIT-pthreads

Esta seção descreve alguns dos detalhes envolvidos no uso de MIT-pthreads.

Note que no Linux você NÃO deve usar MIT-pthreads mas instalar LinuxThreads! Leia 'Notas Linux (Todas as versões)'.

Se seu sistema não fornece suporte nativo a thread, você precisará construir o MariaDB usando o pacote MIT-pthreads. Isto inclui antigos sistemas FreeBSD, SunOS 4.X, Solaris 2.4 e anteriores entre outros. Leia 'Sistemas Operacionais suportados pelo MySQL'.

Note que a partir do MariaDB 4.0.2, MIT-pthreads não fazem mais parte da distribuição fonte. Se você precisar deste pacote, você precisa fazer o download dele separadamente em http://www.mysql.com/Downloads/Contrib/pthreads-1_60_beta6-mysql.tar.gz

Depois do download, extraia este arquivo fonte no nível mais alto do diretório de fontes do MariaDB. Ele criará um novo subdiretório mit-pthreads.

Instalando o MariaDB a partir do Fonte no Windows

Construindo o MariaDB Usando VC++
Criando um Pacote Fonte do Windows a partir da Última Fonte de Desenvolvimento

Estas instruções descrevem como construir o binário do MariaDB a partir do fonte paras versões 4.1 e acima no Windows. As instruções são fornecidas para construir binários a partir de uma distribuição fonte padrão ou a partir da árvore do BitKeeper que contém o fonte do desenvolvimento mais atuais.

Nota: As instruções neste documento estão restritas aos usuários que queiram testar o MariaDB no Windows a partir da última distribuição fonte ou da árvore do BitKeeper. Para uso em produção, a MariaDB Foundation não aconselha que você utilize um servidor MariaDB construído por você mesmo a partir de um fonte. Normalmente é melhor usar uma distribuição binária precompilada do MariaDB que é construída especificamente para desempenho otimizado no Windows pela MariaDB Foundation. Instruções para instalar uma distribuição binária está disponível em 'Instalando o MariaDB no Windows'.

Para construir o MariaDB no Windows a partir do fonte, você precisa dos seguintes compiladores e recursos disoníveis em seu sistema Windows:

Você também precisará de um distribuição fonte para o Windows. Existem dois modos de conseguir uma distribuição fonte do MariaDB versão 4.1 e acima:

  1. Obtenha um pacote de uma distribuição fonte pela MariaDB Foundation para a versão do MariaDB que você está particularmente interessado. Distribuições fontes empacotadas estão disponíveis para versões distribuídas do MySQ e podem ser obtidas em http://www.mysql.com/downloads/.
  2. Você pode empacotar um distribuição fonte você mesmo a partir da ultima árvore fonte de desenvolvimento do BitKeeper. Se você planeja fazer isto, você deve criar o pacote em um sistema Unix e então transfrí-lo para seu sistema Windows. (A razão para isto é que alguns dos passos de configuração e construção exigem ferramentas que funcionam apenas no Unix.) A abordagem do BitKeeper, exige:

    • Um sistema executando Unix ou um sistema tipo Unix, como o Linux
    • BitKeeper 3.0 instalado neste sistema. Você pode obter o BitKeeper em http://www.bitkeeper.com/.

Se você estiver usando uma distribuição fonte do Windows, você pode ir diretamente para 'Construindo o MariaDB Usando VC++'. Para contruir a partir da árvore do BitKeeper, vá para 'Criando um Pacote Fonte do Windows a partir da Última Fonte de Desenvolvimento'.

Se você encontrar alguma coisa que não está funcionando como esperado, ou tiver sugestões sobre o mode de melhorar o processo de construção atual no Windows, envie uma mensagem para a lista de email win32. Leia 'As Listas de Discussão do MariaDB'.

Construindo o MariaDB Usando VC++

Nota: O MariaDB e arquivos do espeço de trabalho do VC++ são compatíveis com o Microsoft Visual Studio 6.0 e as edições acima (7.0/.NET) e testados pela equipe da MariaDB Foundation antes de cada distribuição.

Siga este procedimento para construir o MySQL:

  1. Crie um diretório de trabalho (ex.: workdir).
  2. Descompacte a distribuição fonte no diretório mencionado acima usando Winzip ou outra ferramenta que possa ler arquivos .zip.
  3. Inicie o compilador VC++ 6.0.
  4. No menu File, selecione Open Workspace.
  5. Abra o workspace mysql.dsw que você encontrar no diretório de trabalho.
  6. No menu Build, selcione o menu Set Active Configuration.
  7. Clique sobre a tela selecionada mysqld - Win32 Debug e clique OK.
  8. Pressione F7 para iniciar a construção da depuração do servidor, bibliotecas e alguns aplicativos clientes.
  9. Compile as versões distribuídas que você desejar, do mesmo modo.
  10. Versões depuradas dos programas e bibliotecas são colocados nos diretórios client_debug e lib_debug. Versões liberadas dos programas e bibliotecas são colocados nos diretórios client_release e lib_release. Note que se você quiser construir tanto versões liberadas quanto depuradas você pode selecionar a opção build all do menu Build.
  11. Teste o servidor. O servidor construído usando as instruções anteriores irá esperar que o diretório base e de dados do MariaDB seja C:\mysql e C:\mysql\data por padrão. Se você quiser testar o seu servidor usando o diretório raiz de uma árvore fonte e seu diretório de dados como o diretório base e o diretório de dados, você precisará dizer ao servidor os seus caminhos. Você também pode fazer into na linha de comando com as opções --basedir e --datadir, ou colocar opções apropriadas no arquivo de opções (o arquivo C:\my.cnf ou my.ini no diretório do Windows). Se você tiver um diretório de dados existente em qualquer lugar que você queira usar, você pode especificá-lo no se caminho.
  12. Inicie o ser servidor a partir do diretório client_release ou client_debug, dependendo de qual servidor você queira usar. O instruções gerais de inicializaão do servidor estão em 'Instalando o MariaDB no Windows'. Você precisará adaptar as instruções de forma apropriada se você quiser usar um diretório base ou diretório de dados diferente.
  13. Quando o servidor está em execução de modo independente ou como um serviço daseado em sua configuração, tente se conectar a ele pelo utilitário interativo MariaDB de linha de comando que existe em seu diretório client_release ou client_debug.

Quando você estiver certo de que os programas que você construiu estão funcionando corretamente, pare o servidor. Então instale o MariaDB da seguinte forma:

  1. Crie o diretório para instalar os arquivos do MariaDB. Por exemplo, para instalar dentro de C:\mysql), use estes comandos:

    C:
    mkdir \mysql mkdir \mysql\bin mkdir \mysql\data mkdir \mysql\share mkdir \mysql\scripts
    

    Se você quiser compilar outros clientes e ligá-los ao MySQL, você também deve criar diversos diretórios adicionais:

    mkdir \mysql\include mkdir \mysql\lib mkdir \mysql\lib\debug mkdir \mysql\lib\opt
    

    Se você quiser fazer um benchamrk do MariaDB, crie este diretório:

    mkdir \mysql\sql-bench
    

    Benchmark exigem suporte Perl.

  2. Copie do diretório workdir para o diretório c:\mysql os seguintes diretórios:

    copy client_release\*.exe C:\mysql\bin copy client_debug\mysqld.exe C:\mysql\bin\mysqld-debug.exe xcopy scripts\*.* C:\mysql\scripts /E xcopy share\*.* C:\mysql\share /E
    

    Se você quiser compilar outros clientes e ligá-los ao MySQL, você também deve fazer isto:

    copy lib_debug\mysqlclient.lib C:\mysql\lib\debug copy lib_debug\libmysql.* C:\mysql\lib\debug copy lib_debug\zlib.* C:\mysql\lib\debug copy lib_release\mysqlclient.lib C:\mysql\lib\opt copy lib_release\libmysql.* C:\mysql\lib\opt copy lib_release\zlib.* C:\mysql\lib\opt copy include\*.h C:\mysql\include copy libmysql\libmysql.def C:\mysql\include
    

    Se você quiser fazer um benchmark do MariaDB, você também deve fazer isto:

    xcopy sql-bench\*.* C:\mysql\bench /E
    

Configure e inicie o servidor da mesma forma que a distribuição binária do Windows. Leia 'Preparando o Ambiente MariaDB do Windows'.

Criando um Pacote Fonte do Windows a partir da Última Fonte de Desenvolvimento

Para construir o último pacote fonte do Windows a partir da arvoré fonte atual do BitKeeper, use as seguintes instruções. Por favor, note que este procedimento deve ser realizado em um sistema executando um sistema opercional Unix ou similar. (Sabe-se que este procedimento funciona bem com o Linux, por exemplo.)

  1. Clone a árvore fonte do BitKeeper para o MariaDB (versão 4.1 ou acima, como desejado). Para mais informações sobre como clonar a árvore fonte veja as instruções em 'Instalando pela árvore de fontes do desenvolvimento'.
  2. Configure e construa as distribuições para que você tenha um binário do servidor para trabalhar. Um modo de se fazer isto é executar o seguinte comando no diretório de mais alto nível de sua árvore fonte:

    shell> ./BUILD/compile-pentium-max
    
  3. Depois de se certificar que o processo de construção foi completado corretamente, execute o seguinte script utilitário a a partir do diretório de nível mais alto da sua arvore fonte:

    shell> ./scripts/make_win_src_distribution
    

    Este script cria um pacote fonte Windows. para ser usado em seu sistema Windows. Você pode fornecer diferentes opções para o script baseado em suas necessidades. Ele aceita as seguintes opções:

    --debug Depura, sem criar o pacote
    --tmp Especifica a localização temporária
    --suffix Nome de sufixo para o pacote
    --dirname Nome do diretório onde os arquivos são copiados (intermediario)
    --silent Não apresenta uma lista dos arquivos processados
    --tar Cria um pacote tar.gz em vez de .zip
    --help Mostra esta mensagem de ajuda
    

    Por padrão, make_win_src_distribution cria um arquivo zipado com o nome mysql-VERSION-win-src.zip, onde VERSION representa a versão de sua árvore fonte do MariaDB.

  4. Faça uma copia ou upload para a sua máquina o pacote fonte Windows que você tiver criado. Para compilá-lo use as instruções em 'Construindo o MariaDB Usando VC++'.

Configurações e Testes Pós-instalação

Problemas Executando o mysql_install_db
Problemas Inicializando o Servidor MySQL
Inicializando e parando o MariaDB automaticamente.

Uma vez instalado o MariaDB (de uma distribuição binária ou fonte), você deve inicializar as tabelas de concessões, iniciar o servidor e ter certeza que o servidor está funcionando bem. Você pode também desejar que o servidor inicie e pare automaticamente quando seu sistema iniciar e desligar.

Normalmente você instala as tabelas de concessões e inicia o servidor assim para instalações baseadas em uma distribuição fonte:

shell> ./scripts/mysql_install_db
shell> cd diretorio_instalação_mysql
shell> ./bin/mysqld_safe --user=mysql &

Para uma distribuição binária (sem ser pacotes RPM ou PKG), faça isto:

shell> cd diretorio_instalação_mysql
shell> ./bin/mysql_install_db
shell> ./bin/mysqld_safe --user=mysql &

O script mysql_install_db cria o banco de dados MariaDB que irá armazenar todos privilégios do banco de dados, o banco de dados test que você poderá usar para testar o MariaDB e também entradas de privilégio para o usuário que usa o mysql_install_db e o usuário root. As estrandas são criadas sem senhas. O script mysqld_safe inicia o servidor mysqld. (Se sua versão for anterior a 4.0, use safe_mysqld em vez de mysqld_safe.)

mysql_install_db não irá sobrescrever nenhuma tabela de privilégios antiga, então deve ser seguro executá-lo em quaisquer circunstâncias. Se você não deseja ter o banco de dados test você pode removê-lo com mysqladmin -u root drop test depois de iniciar o servidor.

Testes são geralmente facilmente feitos de um diretório raiz da distribuição MariaDB. Para uma distribuição binária, este é seu diretório de instalação (normalmente algo como /usr/local/mysql). Para uma distrubuição fonte, este é o diretório principal da sua árvore fonte do MariaDB.

Nos comandos mostrados abaixo nesta seção e nas seguintes subseções, BINDIR é o caminho para a localização na qual os programas como mysqladmin e mysqld_safe estão instalados. Para uma distribuição binária este é o diretório bin. Para uma distribuição fonte, BINDIR é provavelmente /usr/local/bin, a menos que você especifique um diretório de instalação diferente de /usr/local quando você executa configure. EXECDIR é a localização na qual o servidor mysqld está instalado. Para uma distribuição binária, isto é o mesmo que BINDIR. Para uma distribuição fonte, EXECDIR é provavelmente /usr/local/libexec.

Os testes são descritos em detalhes abaixo:

  1. Se necessário, inicie o servidor mysqld e configure as tabelas de concessões iniciais contendo os privilégios que determinam como os usuários estão permitidos a conectar ao servidor. Isto é feito normalmente com o script mysql_install_db:

    shell> scripts/mysql_install_db
    

    Normalmente, mysql_install_db precisa ser executado somente na primeira vez que você instala o MariaDB. Portanto, se você estiver atualizando uma instalação existente, você pode pular este passo. (entretanto, mysql_install_db é realmente seguro de usar e não irá atualizar nenhuma tabela que já exista, então se você não tem certeza do que fazer, você pode sempre executar mysql_install_db.)

    mysql_install_db cria seis tabelas (user, db, host, tables_priv, columns_priv e func) no banco de dados MariaDB. Uma descrição dos privilégios iniciais é fornecido em 'Configurando os Privilégios Iniciais do MariaDB'. De forma resumidao, estes privilégios permitem que o usuário root faça qualquer coisa no MySQL, e permitem a qualquer um a criar ou usar bancos de dados com o nome de 'test' ou iniciando com 'test_' .

    Se você não configurar as tabelas de concessões, o seguinte erro irá aparecer no arquivo log quando você não iniciar o servidor:

    mysqld: Can't find file: 'host.frm'
    

    O erro acima pode também ocorrer com uma distribuição binária do MariaDB se você não iniciar o MariaDB executando o ./bin/mysqld_safe! Leia 'mysqld-safe, o wrapper do mysqld'.

    Você deve precisar executar mysql_install_db como root. Entretanto, se você preferir, pode executar o servidor MariaDB como um usuário (não-root) sem privilégios, desde que o usuário possa ler e escrever arquivos no diretório de banco de dados. Instruções para executar o MariaDB como um usuário sem privilégios é detalhado em Seção A.3.2, 'Como Executar o MariaDB Como Um Usuário Normal'

    Se você tiver problemas com o mysql_install_db, veja 'Problemas Executando o mysql_install_db'.

    Existem algumas alternativas para executar o script mysql_install_db como ele é fornecido na distribuição MySQL:

    • Você pode querer editar o mysql_install_db antes de executá-lo, para alterar os privilégios iniciais que são instalados nas tabelas de concessões. Isto é útil se você deseja instalar o MariaDB em várias máquinas com os mesmos privilégios. Neste caso, é provável que você só precise adicionar algumas instruções INSERT extras para as tabelas mysql.user e mysql.db.
    • Se você deseja alterar o conteúdo da tabelas de concessões depois de instalá-las, você pode executar mysql_install_db, então usar mysql -u root mysql para conectar às tabelas de concessões como o usuário root e usar instruções SQL para modificá-las diretamente.
    • É possível recriar as tabelas de permissões completamente depois delas já terem sido criadas. Você pode querer fazer isto se você já instalou as tabelas mas deseja recriá-las depois das edições mysql_install_db.

    Para maiores informações sobre estas alternativas, veja 'Configurando os Privilégios Iniciais do MariaDB'.

  2. Inicie o servidor MariaDB assim:

    shell> cd diretorio_instalacao_mysql
    shell> bin/mysqld_safe &
    

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

    Se você tiver problemas iniciando o servidor, veja 'Problemas Inicializando o Servidor MySQL'.

  3. Use mysqladmin para verificar se o servidor está em execução. Os seguintes comandos fornecem um teste simples para conferir se o servidor está em funcionamento e respondendo às conexões:

    shell> BINDIR/mysqladmin version
    shell> BINDIR/mysqladmin variables
    

    A saída de mysqladmin version varia muito pouco dependendo de sua plataforma e versão do MariaDB, mas deve ser similar a esta mostrada abaixo:

    shell> BINDIR/mysqladmin version
    mysqladmin Ver 8.14 Distrib 3.23.32, for linux on i586
    Copyright (C) 2000 MariaDB Foundation & MariaDB Finland AB & TCX DataKonsult AB This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license.
    Server version 3.23.32-debug Protocol version 10
    Connection Localhost via Unix socket TCP port 3306
    UNIX socket /tmp/mysql.sock Uptime: 16 sec Threads: 1 Questions: 9 Slow queries: 0
    Opens: 7 Flush tables: 2 Open tables: 0
    Queries per second avg: 0.000
    Memory in use: 132K Max memory used: 16773K
    

    Para ter uma idéia do que você pode fazer com BINDIR/mysqladmin, invoque-o com a opção --help.

  4. Verifique se você pode desligar o servidor:

    shell> BINDIR/mysqladmin -u root shutdown
    
  5. Verifique que você possa reiniciar o servidor. Faça isto usando mysqld_safe ou chamado o mysqld diretamente. Por exemplo:

    shell> BINDIR/mysqld_safe --log &
    

    Se o mysqld_safe falhar, tente executá-lo do diretório de instalação do MariaDB (se você já não estiver lá). Se não funcionar, veja 'Problemas Inicializando o Servidor MySQL'.

  6. Execute alguns testes básicos para verificar se o servidor está funcionando. A saída deve ser similar ao mostrado abaixo:

    shell> BINDIR/mysqlshow
    +-----------+
    | Databases |
    +-----------+
    | mysql |
    +-----------+
    shell> BINDIR/mysqlshow mysql
    Database: mysql
    +--------------+
    | Tables |
    +--------------+
    | columns_priv |
    | db |
    | func |
    | host |
    | tables_priv |
    | user |
    +--------------+
    shell> BINDIR/mysql -e 'SELECT host,db,user FROM db' mysql
    +------+--------+------+
    | host | db | user |
    +------+--------+------+
    | % | test | |
    | % | test_% | |
    +------+--------+------+
    

    Também existe uma suite de benchmark no diretório sql-bench (sob o diretório de instalação do MariaDB) que você pode usar para comparar como o MariaDB se comporta em diferentes plataformas. O diretório sql-bench/Results contém os resultados de várias execuções em diferentes bancos de dados e plataformas. Os seguintes módulos Perl adicionais são necessários para executar o pacote de benchamrk:

    DBI DBD-mysql Data-Dumper Data-ShowTable
    

    Estes módulos podem ser obtidos em CPAN http://www.cpan.org/. Leia 'Instalando Perl no Unix'.

    O diretório sql-bench/Results contém os resultados de várias execuções em diferentes bancos de dados e plataformas. Para executar todos testes, execute estes comandos:

    shell> cd sql-bench
    shell> run-all-tests
    

    Se você não possui o diretório sql-bench, você provavelmente está usando uma distribuição binária RPM. (Distribuições fontes RPMs incluem o diretório com os benchmarks.) Neste caso, você deve primeiramente instalar a suite de benchmark antes de poder usá-lo. A partir da versão 3.22 do MariaDB, começaram a existir arquivos RPMs de benchmark chamados mysql-bench-VERSION-i386.rpm que contém código ie dados de benchmark.

    Se você tem uma distribuição fonte, você também pode executar os testes no subdiretório tests. Por exemplo, para executar auto_increment.tst, faça isto:

    shell> BINDIR/mysql -vvf test < ./tests/auto_increment.tst
    

    Os resultados esperados são mostrados no arquivo ./tests/auto_imcrement.res.

Problemas Executando o mysql_install_db

O propósito do script mysql_install_db é gerar novas tabelas de privilégios. Ele não irá afeter nenhum outro dado! Ele também não fará nada se você já tem a tabela de privilégio do MariaDB instalada.

Se você deseja refazer suas tabelas de privilégios, você deve desligar o servidor mysqld, se ele já está executando, então faça assim:

mv diretorio-dados-mysql/mysql diretorio-dados-mysql/mysql-old mysql_install_db

Esta seção relaciona alguns problemas que podem ser encontrados ao executar mysql_install_db:

Problemas Inicializando o Servidor MariaDB

Se você for usar tabelas que suportem transações (BDB, InnoDB), primeiro deve-se criar um arquivo my.cnf e configurar opções de inicialização para os tipos de tabelas que você planeja usar. Leia Tipos de Tabela do MariaDB.

Geralmente, você inicia o servidor mysqld de uma das três maneiras:

Quando o daemon mysqld inicia, ele altera o diretório para o diretório de dados. É neste diretório que ele espera gravar arquivos de log e o arquivo pid (com o ID do processo) e onde ele espera encontrar os bancos de dados.

A localização do diretório de dados é especificada quando a distribuição é compilada. Entretanto, se o mysqld espera encontrar o diretório de dados em lugar diferente de onde ele realmente está no seu sistema, ele não funcionará corretamente. Se você tiver problemas com caminhos incorretos você pode encontrar quais opções o mysqld permite e quais são as configurações do caminho padrão chamando o mysqld com a opção --help. Você pode sobrescrever os padrões especificando os caminhos corretos como argumentos de linha de comando ao mysqld. (Estas opções também podem ser usadas com o mysqld_safe).

Normalmente você precisaria indicar ao mysqld somente o diretório base sob o qual o MariaDB é instalado. Você pode fazer isso usando a opção --basedir. Você pode também usar --help para conferir o efeito das opeções para se alterar o caminho (perceba que --help deve ser a opção final do comando mysqld. Por exemplo:

shell> EXECDIR/mysqld --basedir=/usr/local --help

Uma vez que você determina as configurações de caminho que você deseja, inicie o servidor sem a opção --help.

Qualquer que tenha sido o método utilizado para iniciar o servidor, se houver falha na inicialização, confira o arquivo de log para ver se você pode entender o porquê. Arquivos log estão localizados no diretório dados (normalmente /usr/local/mysql/data para uma distribuição binária, /usr/local/var para uma distribuição fonte, \mysql\data\mysql.err no Windows.) Procure no diretório de dados por arquivos com nomes no formato nome_maquina.err e nome_maquina.log onde nome_maquina é o nome do servidor. Então confira as últimas linhas destes arquivos:

shell> tail nome_maquina.err
shell> tail nome_maquina.log

Se você encontrar algo como o seguinte no arquivo log:

000729 14:50:10 bdb: Recovery function for LSN 1 27595 failed
000729 14:50:10 bdb: warning: ./test/t1.db: No such file or directory
000729 14:50:10 Can't init databases

Significa que você não inicializou o mysqld com --bdb-no-recover e o Berkeley DB encontrou algo errado com seus arquivos log quando ele tentou recuperar seus bancos de dados. Para poder continuar, você deve mover o antigo arquivo log Berkeley DB do diretório do banco de dados para outro lugar, onde poderá examiná-los posteriormente. Os arquivos log são nomeados log.0000000001, onde o número irá incrementar com o tempo.

Se você estiver executando o mysqld com suporte a tabelas BDB e o mysqld falhar no início, pode ser devido a alguns problemas com o arquivo de recuperação BDB. Neste caso você pode tentar iniciar o mysqld com --bdb-no-recover. Se isto ajudar, então você pode remover todos os arquivos log.* do diretório de dados e tentar iniciar o mysqld novamente.

Se você obter o seguinte erro, significa que algum outro programa (ou outro servidor mysqld) já está usando a porta TCP/IP ou socket mysqld está tentando usar:

Can't start server: Bind on TCP/IP port: Address already in use
 ou Can't start server: Bind on unix socket...

Use ps para ter certeza que você não tem outro servidor mysqld em execução. Se você não consegue encontrar outro servidor, você pode tentar executar o comando telnet sua_maquina numero_porta_tcp-ip e apertar ENTER várias vezes. Se você não obter uma mensagem como telnet: Unable to connect to remote host: Connection refused, algo está usando a mesma porta TCP/IP que o mysqld está tentando usar. Veja 'Problemas Executando o mysql_install_db' e 'Executando Múltiplos MariaDB Servers na Mesma Máquina'.

Se o mysqld está atualmente em execução, você pode verificar as configurações que ele está usando executando este comando:

shell> mysqladmin variables

ou

shell> mysqladmin -h 'your-host-name' variables

Se você obter o Errcode 13, que significa Permission denied, ao iniciar o mysqld isto significa que você não pode ter o direito de leitura/criação de arquivos no diretório do banco de dados ou log. Neste caso você também deve iniciar o mysqld como usuário root ou alterar a permissão para os arquivos e diretórios envolvidos para uqe você tenha o direito de usá-los.

Se o mysqld_safe inicia o servidor mas você não consegue se conectar a ele, tenha certeza que você tem uma entrada no arquivo /etc/hosts que parece com isto:

127.0.0.1 localhost

Este problema só ocorre em sistemas que não possuem uma biblioteca thread funcional e para o qual o MariaDB deve estar configurado para usar MIT-pthreads.

Se você não consegue iniciar o mysqld você pode tentar criar um arquivo para rastreamento de erros (trace) para encontrar o problema. Leia Seção E.1.2, 'Criando Arquivos Trace (Rastreamento)'.

Se você estiver utilizando tabelas InnoDB, procure pelas opções especificas de inicialização do InnoDB. Leia 'Opções de Inicialização do InnoDB'.

Se você estiver usando tabelas BDB (Berkeley DB), você deve se familiarizar com as diferentes opções especificas de inicialização do BDB. 'Opções de Inicialização do BDB'.

Inicializando e parando o MariaDB automaticamente.

Os scripts mysql.server e mysqld_safe podem ser usados para iniciar o servidor automaticamente na inicialização do sistema. mysql.server também pode ser usado para parar o servidor.

O script mysql.server pode ser usado para inicializar ou parar o servidor utilizando-o com os argumentos start ou stop:

shell> mysql.server start
shell> mysql.server stop

mysql.server pode ser encontrado no diretório share/mysql sob o diretório de instalação do MariaDB ou no diretório support-files da árvore fonte do MariaDB.

Note que se você usa o pacote RPM do Linux (MySQL-server-VERSÃO.rpm), o script mysql.server já estará instalada como /etc/init.d/mysql - você não precisa instalá-lo manualmente. Veja 'Instalando o MariaDB no Linux' para mais informações sobre pacotes RPM Linux.

No Mac OS X, você pode instalar um pacote do MariaDB Startup Item separado para habilitar a inicialização automática do MariaDB no boot so sistema. Veja Seção 2.1.3, 'Instalando o MariaDB no Mac OS X' para maiores detalhes.

Antes do mysql.server iniciar o servidor, ele vai para o diretório de instalação do MariaDB, e então chama o mysqld_safe. Você pode precisar editar o mysql.server se tiver uma distribuição binária instalada em um local não-padrão. Modifique-o para chamar o diretório (cd) apropriado antes de executar o safe_mysql. Se você deseja que o servidor seja executado com um usuário específico, adicione uma linha user apropriada para o arquivo /etc/my.cnf, como será visto posteriormente nesta seção.

mysql.server stop desliga o servidor MariaDB enviando um sinal para ele. Você pode desligar o servidor manualmente executando mysqladmin shutdown.

Você precisa adicionar estes comandos start e stop nos lugares apropriados de seus arquivos /etc/rc.* quando você quiser iniciar o MariaDB automaticamente no seu servidor.

On most current Linux distributions, it is sufficient to copy the file mysql.server into the /etc/init.d directory (or /etc/rc.d/init.d on older Red Hat systems). Afterwards, run the following command to enable the startup of MariaDB on system bootup:

shell> chkconfig --add mysql.server

No FreeBSD o script de inicialização normalmente deve ir no diretório /usr/local/etc/rc.d/. A página do manual rc(8) também diz que os scripts neste diretório só são executados, se o seu nome de base corresponder padrão global da sheel *.sh. Qualquer outro arquivo ou diretório presente dentro do diretório são silenciosamente ignorados. Em outra palavras, no FreeBSD você deve instalar o arquivo mysql.server como /usr/local/etc/rc.d/mysql.server.sh para habilitar a inicialização automática.

Como uma alternativa para o exposto acima, alguns sistemas operacionais também usam /etc/rc.local ou /etc/init.d/boot.local para inicializar serviços adicionais durante o boot. Para iniciar o MariaDB usando este método, você poderia poderia adicionar algo como o seguinte a ele:

/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'

Você também pode adicionar opções para mysql.server em um arquivo global /etc/my.cnf. Um típico arquivo /etc/my.cnf pode parecer com isto:

[mysqld]
datadir=/usr/local/mysql/var socket=/var/tmp/mysql.sock port=3306
user=mysql
[mysql.server]
basedir=/usr/local/mysql

O script mysql.server entende as seguintes opções: datadir, basedir e pid-file.

A seguinte tabela mostra quais grupos de opções cada script de inicialização lê dos arquivos de opções:

Script Grupos de opções
mysqld [mysqld], [server] e [mysqld-major-version]
mysql.server [mysql.server], [mysqld], e [server]
mysqld_safe [mysql.server], [mysqld], e [server]

Para compatibilidade com versões anteriores, o mysql.server também lê o grupo [mysql_server] e mysqld_safe também lê o grupo [safe_mysqld]. No entanto, você deve atualizar os seus arquivos de opções para usar os grupos [mysql.server] e [mysqld_safe].

See 'Arquivo de Opções my.cnf'.

Atualizando/Desatualizando o MariaDB

Atualizando da Versão 4.0 para 4.1
Atualizando da Versão 3.23 para 4.0
Atualizando da versão 3.22 para 3.23
Atualizando da versão 3.21 para 3.22
Atualizando da versão 3.20 para 3.21
Atualizando a Tabela de Permissões
Atualizando para outra arquitetura
Atualizando o MariaDB no Windows

Antes de fazer uma atualização, você deve fazer o backup de seus bancos de dados antigos.

Você sempre pode mover os arquivos de formato e de dados do MariaDB entre diferentes versões na mesma arquitetura enquanto você tiver versão base do MariaDB. A versão base atual é 4. Se você alterar o conjunto de caracteres quando executar o MySQL, você deve executar myisamchk -r -q --set-character--set=charset em todas tabelas. De outra forma seus índices podem não ser corretamente ordenados, porque alterar o conjunto de caracteres também pode alterar a ordenação.

Se você tem receio de novas versões, você sempre pode renomear seu antigo mysqld para algo como mysqld-'número-da-versão-antiga'. Se o seu novo mysqld comportar de maneira inesperada, você simplesmente pode desliga-lo e reiniciar com seu antigo mysqld!

Se depois de uma atualização, você tiver problemas com programas clientes recompilados como Commands out of sync ou core dumps inexperados, você provavelmente usou um arquivo de cabeçalho ou de biblioteca antigo na compilação de seus programas. Neste caso você deve conferir a data de seu arquivo mysql.h e da biblioteca libmysqlclient.a para verificar que eles são da nova distribuição MariaDB. Se não, por favor, recompile seus programas!

Se você tiver problemas, como na inicialização do novo servidor mysqld ou caso você não consiga conectar sem uma senha, confira se o seu arquvo my.cnf é o mesmo da antiga instalação! Você pode conferir com isto: nome-programa --print-defaults. Se isto não produzir outra saída além do nome do programa, você tem um arquivo my.cnf ativo que está afetando a operacionalidade do servidor!

É uma boa idéia reconstruir e reinstalar o módulo Perl DBD-mysql sempre que instalar uma nova versão do MariaDB. O mesmo se aplica para outras interfaces MySQL, como Python MySQLdb.

Atualizando da Versão 4.0 para 4.1

Varias comportamentos visíveis foram alteradas entre o MariaDB e o MariaDB para corrigir erros críticos e tornar o MariaDB mais compatível com o padrão ANSI SQL. Estas alterações podem afetar à sua aplicação.

Alguns dos comportamentos do MariaDB no 4.0 podem ser testados antes de realizar uma atualização completa para a versão 4.1, adicionamos às últimas distribuições do MariaDB (a paritr da 4.0.12) a opção de inicialização --new para o mysqld.

Esta opção lhe dá o comportamento da versão 4.1 para as alterações mais críticas. Você também pode habilitar estes comportamentos para a conexão de uma determinado cliente com o comando SET @@new=1, ou desabilitá-lo se ele for iniciado com SET @@new=0.

Se você acredita que algumas das alterações da versão 4.1 o afetarão, recomendamos que antes de atualizar para a versão 4.1, você faça o download da última distribuição do MariaDB e o execute com a opção --new adicionando o seguinte ao seu arquivo de configuração:

[mysqld-4.0]
new

Deste modo você pode testar o novo comportamento com seus aplicativos na versão 4.0 para certificar-se que eles funcionam. Isto o ajudará a ter uma transição suave quando realizar uma atualização completa do MariaDB 4.1. Fazendo isto do modo acima irá assegurar que você não execute acidentalemte a versão 4.1 com a opção --new mais tarde.

A seguinte lista descreve alterações que podem afetar aplicações e que você deve observar ao atualizar para a versão 4.1:

Em geral, atualizar para o MariaDB a partir de uma versão mais nova do MariaDB envolve os serguintes passos:

O mecanismo de hashing da senha foi alterado na versão 4.1 para fornecer maior segurança, mas ele pode causar problemas de compatibilidade se você ainda tiver clientes que usam a biblioteca cliente 4.0 ou anterior. (É bastante indesejável que você tenha clientes 4.0 em situações onde o cliente conecta de uma máquina remota que ainda não tenha sido atualizada para a versão 4.1). A seguinte lista indica algumas estratégias possíveis de atualização. Elas representam o que se deve fazer para escolher se ter compatibilidade com clientes antigos e ter maior segurança.

Informações adicionais sobre hashing de senha em relação a autenticação no cliente e operações de alteração de senha podem ser encontrados em 'Hashing de Senhas no MariaDB 4.1'.

Atualizando da Versão 3.23 para 4.0

Em geral, o que você deve fazer é atualizar para a versão 4.0 um versão mais nova do MariaDB:

O MariaDB funcionará mesmo se você não fizer o acima, mas você não poderá usar os novos privilégios de segurança pois o MariaDB e você podem encontrar problemas ao atualizar o MariaDB para a versão 4.1 ou mais nova. O formato do arquivo ISAM ainda funciona no MariaDB mas está obsoleto e será disabilitado (não compilado por padrão) no MariaDB 4.1. Em vez disso deve se usar tabelas MyISAM.

Clientes antigos devem funcionar com um servidor versão 4.0 sem nenhum problema.

Mesmo se você fizer o indicado acima, você ainda pode voltar para o MariaDB 3.23.52 ou mais novo se você encontrar problemas com o MariaDB da série 4.0. Neste caso você deve usar o mysqldump para fazer um dump de qualquer tabela que use um índice full-text e recarregar o arquivo de dump no servidor 3.23 (pois o 4.0 usa um novo formato para índices full-text).

A seguir está uma lista mais completa com o que deve ser observado para atualizar para a versão 4.0;

Se você estiver executando o MariaDB Server no Windows, veja 'Atualizando o MariaDB no Windows'. Se você estiver usando replicação, veja 'Visão Geral da Implementação da Replicação'.

Atualizando da versão 3.22 para 3.23

A Versão 3.23 do MariaDB suporta tabelas do novo tipo MyISAM e do antigo tipo ISAM. Você não necessita converter suas antigas tabelas para usá-las com a versão 3.23. Por padrão, todas novas tabelas serão criadas usando o tipo MyISAM (a menos que você inicie o mysqld com a opção --default-table-type=isam). Você pode converterr uma tabela ISAM para uma formato MyISAM com ALTER TABLE nome_tabela TYPE=MyISAM ou com o script Perl mysql_convert_table_format.

Os clientes versões 3.22 e 3.21 irão trabalhar sem quaisquer problemas com um servidor versão 3.23.

As seguintes listas dizem o que você deve conferir quando atualizar para a versão 3.23:

Atualizando da versão 3.21 para 3.22

Nada que afetaria a compatibilidade foi alterada entre a versão 3.21 e 3.22. A única dificuldade é que novas tabelas que são criadas com colunas do tipo DATE usarão a nova forma de armazenar a data. Você não pode acessar esses novos campos com uma versão antiga de mysqld.

Depois de instalar o MariaDB versão 3.22, você deve iniciar o novo servidor e depois executar o script mysql_fix_privilege_tables. Isto adicionará os novos privilégios que você precisará para usar o comando GRANT. Se você se esquecer disto, sera retornado o erro Access denied quando você tentar usar ALTER TABLE, CREATE INDEX ou DROP INDEX. O procedimento para atualizar a tabela de permissões está descrito em 'Atualizando a Tabela de Permissões'.

A interface API C para mysql_real_connect() foi alterada. Se você tem um programa cliente antigo que chama essa função, você deve colocar um 0 para o novo argumento db (ou recodificar o cliente para enviar o elemento db para conexões mais rápidas). Você também deve chamar mysql_init() antes de chamar mysql_real_connect()! Esta alteração foi feita para permitir à nova função mysql_options() salvar opções na estrutura do manipulador do MariaDB.

A variável key_buffer do mysqld foi renomeada para key_buffer_size, mas você ainda pode usar o antigo nome nos seus arquivos de inicialização.

Atualizando da versão 3.20 para 3.21

Se você estiver executando uma versão mais antiga que a Versão 3.20.28 e deseja mudar para a versão 3.21 você deve fazer o seguinte:

Inicie o servidor mysqld versão 3.21 com a opção --old-protocol para usá-lo com clientes de uma distribuição da versão 3.20 Neste caso, a nova função cliente mysql_errno() não irá retornar erro do servidor, somente CR_UNKNOWN_ERROR (mas isto funciona para erros de clientes) e o servidor usa a forma função password() anterior a 3.21 para verificação, ao invés do novo método.

Se você NÃO estiver usando a opção --old-protocol para mysqld, você precisará fazer as seguir alterações:

A versão do MariaDB 3.20.28 e superiores podem manipular o novo formato da tabela de usuários sem afetar os clientes. Se você tem uma versão do MariaDB mais nova que 3.20.28, senhas não irão mais funcionar se você converter a tabela de usuaios. Por segurança, você primeiro deve fazer uma atualização para a versão 3.20.28, pelo menos, e então atualizar para a versão 3.21.

O novo código cliente trabalha com um servidor mysqld 3.20.x, portanto se houver problemas com 3.21.x você deve usar o antigo servidor 3.20.x sem a necessidade de recompilar os clientes novamente.

Se você não está usando a opção --old-protocol para o mysqld, antigos clientes não poderão se conectar e exibirão a seguinte mensagem de erro:

ERROR: Protocol mismatch. Server Version = 10 Client Version = 9

A nova interface PERL DBI/DBD também suporta a antiga interface mysqlperl. A única alteração que deve ser feita se você usa o mysqlperl é alterar os argumentos para a função connect(). Os novos argumentos são: host, database, user, password (note que os argumentos user e password foram alterados de lugar). Leia Seção 12.5.2, 'A interface DBI'.

As seguintes alterações podem afetar consultas em antigas aplicações:

Atualizando a Tabela de Permissões

Algumas distribuições introduzem alterações a estrutura da tabelas de permissões (a tabela no banco de dados MariaDB) para adicionar novos privilégios ou recursos. Para ter certeza de que as suas tabelas de permissões estão corretas quando você atualizar para uma nova versão do MariaDB, você deve atualizar a sua tabela de permissão também.

Em sistemas Unix ou semelhantes, atualize a tabela de permissões executando o script mysql_fix_privilege_tables:

shell> mysql_fix_privilege_tables

Você deve executar este script enquanto o servidor está em execução. Ele tenta se conectar ao servidor na máquina local como root. Se sua conta root exige uma senha, indique a senha na linha de comando. Para o MariaDB e acima, especifique a senha assim:

shell> mysql_fix_privilege_tables --password=senha_root

Antes do MariaDB, especifique a senha desta forma:

shell> mysql_fix_privilege_tables senha_root

O script realiza mysql_fix_privilege_tables qualquer ação necessária para converter sua tabela de permissões para o formato atual. Você pode ver alguns avisos Duplicate column name, durante a execução, eles podem ser ignorados.

Depois de executar o script, pare o servidor e o reinicie.

No Windows, não existe uma modo fácil de se atualizar a tabela de permissões até o MariaDB 4.0.15. A partir desta versão, as distribuições do MariaDB incluem um script SQL mysql_fix_privilege_tables.sql que você pode executar usando o cliente MariaDB. Se sua instalação do MariaDB está localizada em C:\mysql, o comando se parecerá com este:

C:\mysql\bin> mysql -u root -p mysql
mysql> SOURCE C:\mysql\scripts\mysql_fix_privilege_tables.sql

Se sua instalação está localizada em algum outro diretório, ajuste o caminha apropriadamente.

O comando irá lhe pedir a senha do root; digite-a quando pedido.

Como no procedimento com o Unix, você pode ver alguns avisos Duplicate column name enquanto o MariaDB processa as instruções no script mysql_fix_privilege_tables.sql; eles podem ser ignorados.

Depois de executar o script, para o servidor e reinicie-o.

Atualizando para outra arquitetura

Se você estiver usando o MariaDB Versão 3.23, você pode copiar os arquivos .frm, .MYI e .MYD para tabelas MyISAM entre diferentes arquiteturas que suportem o mesmo formato de ponto flutuante. (O MariaDB cuida de cada detalhe de troca de bytes.) Leia 'Tabelas MyISAM'.

Os arquivos ISAM de dados e índices (*.ISD e *.ISM respectivamente) são dependentes da arquitetura e em alguns casos dependentees do Sistema Operacional. Se você deseja mover suas aplicações para outra máquina que tem uma arquitetura ou SO diferentes da sua máquina atual, você não deve tentar mover um banco de dados simplesmente copiando os arquivos para a outra máquina. Use o mysqldump.

Por padrão, o mysqldump irá criar um arquivo contendo declarações SQL. Você pode então transferir o arquivo para a outra máquina e alimentá-la como uma entrada para o cliente MariaDB.

Utilize mysqldump --help para ver quais opções estão disponíveis. Se você está movendo os dados para uma versão mais nova do MariaDB, você deve usar mysqldump --opt com a nova versão para obter uma descarga rápida e compacta.

A mais fácil (mas não a mais rápida) forma para mover um banco de dados entre duas máquinas é executar os seguintes comandos na máquina em que o banco de dados se encontra:

shell> mysqladmin -h 'nome da outra maquina' create nome_bd
shell> mysqldump --opt nome_bd \
 | mysql -h 'nome da outra maquina' nome_bd

Se você deseja copiar um banco de dados de um máquina remota sobre uma rede lenta, pode ser usado:

shell> mysqladmin create nome_bd
shell> mysqldump -h 'nome de outra maquina' --opt --compress nome_bd \
 | mysql nome_bd

O resultado pode também ser armazenado em um arquivo, depois transfira o arquivo para a máquina destino e carregue o arquivo no banco de dados. Por exemplo você pode descarregar um banco de dados para um arquivo na máquina origem desta forma:

shell> mysqldump --quick nome_bd | gzip > nome_bd.contents.gz

(O arquivo criado neste exemplo está compactado.) Transfria o arquivo contendo o conteúdo do banco de dados para a máquina destino e execute estes comandos:

shell> mysqladmin create nome_bd
shell> gunzip < nome_bd.contents.gz | mysql nome_bd

Também pode ser usado mysqldump e mysqlimport para ajudar na transferência do banco de dados. Para grandes tabelas, isto é muito mais rápido do que usar simplesmente mysqldump. Nos comandos abaixo, DUMPDIR representa o caminho completo do diretório que você utiliza para armazenar a saída de mysqldump.

Primeiro, crie o diretório para os arquivos de saída e descarregue o banco de dados:

shell> mkdir DUMPDIR
shell> mysqldump --tab=DUMPDIR nome_bd

Depois transfira os arquivo no diretório DUMPDIR para algum diretório correspondente na máquina destino e carregue os arquivos no MariaDB assim:

shell> mysqladmin create nome_bd # cria o banco de dados
shell> cat DUMPDIR/*.sql | mysql nome_bd # cria tabelas no banco de dados
shell> mysqlimport nome_bd DUMPDIR/*.txt # carrega dados nas tabelas

Não se esqueça de copiar o banco de dados MariaDB também, porque é nele que as tabelas de permissões (user, db e host) são armazenadas. Você pode ter que executar comandos como o usuário root do MariaDB na nova máquina até que você tenha o banco de dados MariaDB no lugar.

Depois de importar o banco de dados MariaDB para a nova máquina, execute mysqladmin flush-privileges para que o servidor recarregue as informações das tabelas de permissões.

Atualizando o MariaDB no Windows

Qaundo atualizar o MariaDB no Windows, siga os passo abaixo:

  1. Faça o download do última distribuição MariaDB do Windows.
  2. Escolha uma hora do dia com pouco uso, onde a parada para manutenção é aceitável.
  3. Alerte os usuários que ainda estão ativos para sua parada de manutenção.
  4. Pare o Servidor MariaDB em execução (por exemplo, com NET STOP mysql ou com o utilitário de Serviços se você estiver exeutando MariaDB como um serviço, ou com mysqladmin shutdown).
  5. Finalize o programa WinMySQLAdmin se ele estiver em execução.
  6. Execute o script de instalação do arquivo de distribuição do Windows, clicando no botão 'Install' no WinZip e seguindo os passos da instalação do script.
  7. Você pode sobrescrever a sua instalação antiga do MariaDB (normalmente em C:\mysql), ou instalá-la em um diretório diferente, como C:\mysql4. Sobrescrever a instalação antiga é o recomendado.
  8. Reinicie o serviço MariaDB Server (por exemplo, com NET START mysql se você executar o MariaDB como um serviço, ou chamado o mysqld diretamente).
  9. Atualize a tabela de permissões. O procedimento está descrito em 'Atualizando a Tabela de Permissões'.

Situações de erros possíveis:

A system error has occurred.
System error 1067 has occurred.
The process terminated unexpectedly.

Este erro significa que seu arquivo my.cnf (por padrão C:\my.cnf) contém uma opção que não pode ser reconhecido pela MySQL. Você pode verificar que este é o caso tentando reiniciar o MariaDB com o arquivo my.cnf renomeado, por exemplo, para my_cnf.old para prevenirt o servidor de usá-lo. Uma vez verificado isto, você precisa identificar qual parâmetro é o culpado. Crie um novo arquivo my.cnf e mova as partes do arquivo antigo para ele (reiniciando o servidor depois de mover cada parte) até que você determine qual opção está fazendo a inicialização do servidor falhar.

Notas específicas para os Sistemas Operacionais

Notas Windows
Notas Linux (Todas as versões)
Notas Solaris
Notas BSD
Notas Mac OS X
Notas de Outros Unix
Notas OS/2
Notas Novell NetWare
Notas BeOS

Notas Windows

Conectando em um MariaDB Rematamente a Windows Utilizando SSH
Compilando clientes MariaDB no Windows
MySQL para Windows Comparado com o MariaDB para Unix

Esta seção descreve assuntos específicos para usar MariaDB no Windows.

Conectando em um MariaDB Rematamente a Windows Utilizando SSH

Aqui temos notas sobre como conectar a um servidor MariaDB através de uma conexão remota e segura usando o SSH (por David Carlson <dcarlson@mplcomm.com>:

  1. Instale um cliente SSH na sua máquina Windows. Como um usuário, o melhor opção paga que encontrei é o SecureCRT da http://www.vandyke.com/. Outra opção é o f-secure da http://www.f-secure.com/. Você também pode encontrar algumas versões livres no Google em http://directory.google.com/Top/Computers/Security/Products_and_Tools/Cryptography/SSH/Clients/Windows/.
  2. Inicie seu cliente SSH Windows. Configure Host_Name = IP_ou_Nome_servidormysql. Configure userid=seu_userid para logar no seu servidor. Este valor userid não pode ser o mesmo do nome do usuário se sua conta MySQL.
  3. Configure a porta de acesso. E também faça um acesso remoto (Configure local_port: 3306, remote_host: ip_ou_nomeservidormysql, remote_port: 3306 ) ou um acesso local (configure port: 3306, host: localhost, remote port: 3306).
  4. Salve tudo, senão você terá que refazer tudo da próxima vez.
  5. Logue ao seu servidor com a sessão SSH que acabou de ser criada.
  6. Na sua máquina Windows, inicie algumas aplicações ODBC (como o Access).
  7. Crie um novo arquivo no Windows e ligue ao MariaDB usando o driver ODBC da mesma forma que você normalmente faz, EXCETO pelo fato de digitar localhost para a máquina servidora MariaDB --- não nomeservidormysql.

Você agora deve ter uma conexão ODBC ao MySQL, criptografada com SSH.

Compilando clientes MariaDB no Windows

Em seus arquivos fontes, você deve incluir my_global.h antes de mysql.h:

#include <my_global.h>
#include <mysql.h>

my_global.h inclui qualquer outro arquivo necessário para compatibilidade de Windows (como o windows.h) se o arquivo é compilado no Windows.

Você também pode ligar seu código coma biblioteca dinâmica libmysq.lib, que é apenas um wrapper para carregar em libmysql.dll sobre demanda, ou ligar com a biblioteca estática mysqlclient.lib.

Perceba que como as bibliotecas clientes do MariaDB são compiladas como bibliotecas threaded, você também deve compilar seu código para ser multi-threaded!

MySQL para Windows Comparado com o MariaDB para Unix

O MariaDB para Windows tem provado ser muito estável. Esta versão do MariaDB tem os mesmos recursos que sua versão correspondente Unix com as seguintes exceções:

Aqui estão alguns assuntos em aberto para qualquer um que queira melhorar o MariaDB no Windows:

Notas Linux (Todas as versões)

Notas Linux para distribuições binárias
Notas Linux x86
Notas Linux SPARC
Notas Linux Alpha
Notas Linux PowerPC
Notas Linux MIPS
Notas Linux IA-64

As notas abaixo a respeito da glibc aplicam-se somente na situação quando o MariaDB é construido por você mesmo. Se você está executando Linux em uma máquina x86, na maioria dos casos é muito melhor para você usar nosso binário. Nós ligamos nossos binários com a melhor versão alterada da glibc, podemos escolher as melhores opções do compilador, em uma tentativa de torná-la funcional para um servidor muito exigido. Para um usuário comum, mesmo para configurações com várias conexões concorrentes e/ou tabelas excedendo o limite de 2 GB, nosso binário é, na maioria das vezes, a melhor escolha. Portanto se você ler o texto abaixo, e está em dúvida sobre o que deve fazer, tente usar o nosso binário primeiro para ver se ele preenche suas necessidades, e preocupe-se com uma construção própria apenas se você descobrir que nosso binário não é bom o suficiente para você. Neste caso, iríamos apreciar se fosse feito uma observação sobre isto, para que possamos fazer uma melhor versão bináris da próxima vez.

O MariaDB usa LinuxThreads no Linux. Se você usa uma versão do Linux que não tenha a glibc2, você deve instalar LinuxThreads antes de tentar compilar o MariaDB. Você pode obter o LinuxThreads em http://www.mysql.com/downloads/os-linux.html.

NOTA: Temos visto alguns problemas estranhos com o Linux 2.2.14 e MariaDB em sistemas SMP; Se você tem um sistema SMP, recomendamos a atualização para o Linux 2.4! Seu sistema ficará mais rápido e mais estável.

Perceba que as versões da glibc iguais ou anteriores à Versão 2.1.1 tem um bug fatal no tratamento do pthread_mutex_timedwait, que é usado quando você executar instruções INSERT DELAYED. Recomendamos não usar INSERT DELAYED antes de atualizar a glibc.

Se você planeja ter mais de 1000 conexões simultâneas, será necessário fazer algumas alterações na LinuxThreads, recompile-a e religue o MariaDB ao novo libpthread.a. Aumente PTHREAD_THREADS_MAX em sysdeps/unix/sysv/linux/bits/local_lim.h para 4096 e abaixe o STACK_SIZE no linuxthreads/internals.h para 256KB. Os caminhos são relativos à raiz da glibc. Note que o MariaDB não será estável com cerca de 600-1000 conexões se o valor de STACK_SIZE for o padrão de 2MB.

Se você tiver um problema com o MySQL, no qual ele não consiga abrir vários arquivos ou conexões, pode ser que você não tenha configurado o Linux para lidar com o número de arquivos suficiente.

No Linux 2.2 e posteriores, você pode conferir o valor para a alocação dos arquivos fazendo:

cat /proc/sys/fs/file-max cat /proc/sys/fs/dquot-max cat /proc/sys/fs/super-max

Se você possui mais de 16M de memória, deve ser adicionado o seguinte no seu script de boot (ex. /etc/rc/boot.local no SuSE Linux):

echo 65536 > /proc/sys/fs/file-max echo 8192 > /proc/sys/fs/dquot-max echo 1024 > /proc/sys/fs/super-max

Você também pode executar os comandos acima da linha de comando como root, mas neste caso, os antigos limites voltarão a ser usados na próxima vez que o computador for reiniciado.

De forma alternativa, você pode configurar estes parâmteros durante a inicialização usando a ferramenta sysctl, que é usada por muitas distribuições Linux (No SuSE a partir da versão 8.0). Apenas grave os seguintes valores em um arquivo chamado /etc/sysctl.conf:

# Aumente alguns valores para o MariaDB fs.file-max = 65536
fs.dquot-max = 8192
fs.super-max = 1024

You should also add the following to /etc/my.cnf:

[mysqld_safe]
open-files-limit=8192

Os parâmetros acima permitem o MariaDB criar até 8192 conexões + arquivos.

A constante STACK_SIZE na LinuxThreads controla o espaçamento das pilhas threads no espaço de endereçamento. Ela necessita ser grande o bastante para que tenha espaço o suficiente para a pilha de cada thread, mas pequena o bastante para manter a pilha de alguma thread executando dos dados globais mysqld. Infelizmente, a implementação Linux de mmap(), como descobrimos em experiências, irá desmapear uma região já mapeada se você solicitar o mapeamento de um endereço já em uso, zerando os dados de toda a página ao invés de retoernar. um erro. Portanto a segurança do mysqld ou qualquer outra aplicação baseada em threads depende do comportamento gentil do código que cria as threads. O usuário deve tomar medidas para certirficar-se que o número de threads em funcionamento em qualquer hora seja suficientemente baixo para que as pilhas das threads permaneçam longe do monte global. Com mysqld você deve reforçar este comportamento 'gentil' configurando um valor razoável para a variável max_connections.

Se você mesmo construiu o MariaDB e não deseja confusões corrigindo LinuxThreads, você deve configurar max_connections para um valor máximo de 500. Ele ainda deve ser menor se você tiver uma chave grande para o buffer, grandes tabelas heap, ou outras coisas que fazem o mysqld alocar muita memória ou se você estiver executando um kernel 2.2 com o patch de 2GB. Se você estiver usando nosso binário ou RPM versão 3.23.25 ou posterior, você pode seguramente configurar max_connections para 1500, assumindo que não há uma grande chave de buffer ou tabelas heap com grande quantidade de dados. Quanto mais você reduz STACK_SIZE em LinuxThreads mais threads você pode criar seguramente. Recomendamos os valores entre 128K e 256K.

Se você usa várias conexões simultâneas, você pode sofrer com um 'recurso' do kernel 2.2 que penaliza um processo por bifurcar-se ou clonar um filho na tentativa de prevenir um ataque de separação. Isto faz com que o MariaDB não consiga fazer uma bom escalonamento, quando o número de clientes simultâneos cresce. Em sistemas com CPU única, temos visto isto se manifestar em uma criação muito lenta das threads, tornando a conexão ao MariaDB muito lenta. Em sistemas de múltiplas CPUs, temos observado uma queda gradual na velocidade das consultas quando o número de clientes aumenta. No processo de tentar encontrar uma solução, recebemos um patch do kernel de um de nossos usuários, que alega fazer muita diferença para seu site. O patch está disponível aqui (http://www.mysql.com/Downloads/Patches/linux-fork.patch). Atualmente temos feito testes extensivos deste patch nos sistemas de desenvolvimento e produção. A performance do MariaDB obtem uma melhora significativa, sem causar problemas e atualmente o recomendamos para nossos usuários que continuando trabalhando com servidores muito carregados em kernels 2.2. Este detalhe foi corrigido no kernel 2.4, portanto, se você não está satisfeito com a performance atual do seu sistema, melhor do que aplicar um patch ao seu kernel 2.2, pode ser mais fácil simplesmente atualizar para o 2.4, que lhe dará também uma melhora em seu sistemas SMP em adição à correção do bug discutido aqui.

Estamos testando o MariaDB no kernel 2.4 em uma máquina com 2 processadores e descobrimos que o MariaDB escalona muito melhor - virtualmente, não há nenhuma perda de desempenho no throughput das consultas até cerca de 1000 clientes, e o fator da escala do MariaDB (computado com a razão do throughput máximo para o thoughput de cada cliente.) foi de 180%. Temos observado resultados similares em sistemas com 4 processadores - virtualmente não há perda de desempenho quando o número de clientes é incrementado até 1000 e o fator da escala foi de 300%. Portanto para um servidor SMP muito carregado nós definitivamente recomendamos o kernel 2.4. Nós descobrimos que é essencial executar o processo mysqld com a mais alta prioridade possível no kernel 2.4 para obter performance máxima. Isto pode ser feito adicionando o comando renice -20 $$ ao mysqld_safe. Nos nossos testes em uma máquina com 4 processadores, o aumento da prioridade nos deu 60% de aumento no throughput com 400 clientes.

Atualmente estamos tentando coletar mais informações sobre como o MariaDB atua no kernel 2.4 em sistemas com 4 e 8 processadores. Se você tem acesso a um sistema deste porte e tem feito alguns benchmarks, por favor envie um email para http://www.mysql.com/company/contact/ com os resultados - iremos incluí-los neste manual.

Existe outro detalhe que afeta muito a performance do MariaDB, especialmente em sistemas multi processados. A implementação de mutex em LinuxThreads na glibc-2.1 é muito ruim para programas com várias threads que travam o mutex por um tempo curto. Em um sistema SMP, ironicamente, se você liga o MariaDB com LinuxThreads sem modificações, removendo processadores da máquina, a performance do MariaDB é melhorada em alguns casos. Para corrigir este comportamento, disponibilizamos um patch para glibc 2.1.3, em http://www.mysql.com/Downloads/Linux/linuxthreads-2.1-patch

Com a glibc-2.2.2, o MariaDB versão 3.23.36 irá usar o mutex adaptativo, que é muito melhor,mesmo que o patch na glibc-2.1.3. Avisamos, entretando, que sobre algumas condições, o código mutex no glibc-2.2.2 overspins, que prejudica a performance do MariaDB. A chance desta condição pode ser reduzida mudando a prioridade do processo mysqld para a prioridade mais alta. Nós também corrigimos o comportamento overspin com um patch, disponível em http://www.mysql.com/Downloads/Linux/linuxthreads-2.2.2.patch. Ele combina a correção do overspin, número máximo de threads e espaçamento das pilhas em um único patch. Você precisará aplicá-lo no diretório linuxthreads com patch -p0 </tmp/linuxthreads-2.2.2.patch. Esperamos que seja incluído de alguma forma nos futuros lançamentos da glibc-2.2. De qualquer forma, se você ligar com glibc-2.2.2, ainda será necessário corrigir STACK_SIZE e PTHREAD_THREADS_MAX. Temos esperanças que os padrões serão corrigidos para valores mais aceitáveis para configurações pesadasa do MariaDB no futuro, então sua construção poderá ser reduzida a ./configure; make; make install.

Recomendamos que você use os patches acima para construir uma versão estática especial de libpthread.a e use-a somente para ligações estáticas com o MariaDB. Sabemos que os patches são seguros para o MariaDB e pode melhorar significamente sua performance, mas não podemos dizer nada sobre outras aplicações. Se você ligar outras aplicações coma a versão modificada da biblioteca ou construir uma versão alterada compartilhada e instalá-la no seu sistema, você estará fazendo por sua conta e risco e tenha atenção com outras aplicações que dependem de LinuxThreads.

Se você passar por problemas estranhos durante a instalação do MariaDB ou com travamentos de alguns utilitários comuns, é muito provável que eles são relacionados a problemas de bibliotecas ou compilador. Se for este o caso, o uso de nosso binário será a solução.

Um problema conhecido com a distribuição binária é que com antigos sistemas Linux que usam libc (como o RedHat 4.x ou Slackware), você obterá alguns problemas não fatais com resolução de nomes. Leia 'Notas Linux para distribuições binárias'.

Quando estiver usando LinuxThreads você verá um mínimo de três processos em execução. Estes são de fato, threads. Existirá uma thread para o gerenciador LinuxThreads, uma thread para lidar com conexões e uma thread para tartar de alarmes e sinais.

Perceba que o kernel Linux e a biblioteca LinuxThread pode por padrão ter apenas 1024 threads. Isto significa que você pode ter até 1021 conexões ao MariaDB em um sistema sem correção. A página http://www.volano.com/linuxnotes.html contém informações sobre como contornar este limite.

Se você ver um processo mysqld daemon finalizado com ps, isto normalmente significa que você encontrou um bug no MariaDB ou que tenha uma tabela corrompida. Leia Seção A.4.1, 'O Que Fazer Se o MariaDB Continua Falhando'.

Para obter um descarga do core no Linux se o mysqld finalizar com um sinal SIGSEGV, você pode iniciar o mysqld com a opção --core-file. Perceba que provavelmente você também precisará aumentar o core file size adicionando ulimit -c 1000000 para mysqld_safe ou iniciar mysqld_safe com --core-file-sizes=1000000, Leia 'mysqld-safe, o wrapper do mysqld'.

Se você estiver ligando seu próprio cliente MariaDB e obter o erro:

ld.so.1: ./my: fatal: libmysqlclient.so.4:
open failed: No such file or directory

Quando executá-los, o problema pode ser evitado com um dos seguintes métodos:

Se você estiver usando o compilador Fujitsu (fcc / FCC) você terá alguns problemas compilando o MariaDB porque os arquivos de cabeçalho Linux são muito orientados ao gcc.

A seguinte linha configure deve funcionar com fcc/FCC:

CC=fcc CFLAGS='-O -K fast -K lib -K omitfp -Kpreex -D_GNU_SOURCE \
-DCONST=const -DNO_STRTOLL_PROTO' CXX=FCC CXXFLAGS='-O -K fast -K lib \
-K omitfp -K preex --no_exceptions --no_rtti -D_GNU_SOURCE -DCONST=const \
-Dalloca=__builtin_alloca -DNO_STRTOLL_PROTO \
'-D_EXTERN_INLINE=static __inline'' ./configure --prefix=/usr/local/mysql \
--enable-assembler --with-mysqld-ldflags=-all-static --disable-shared \
--with-low-memory

Notas Linux para distribuições binárias

O MariaDB necessita pelo menos do Linux versão 2.0

Aviso: Percebemos que alguns usuários do MariaDB tiveram serios problemas de estabilidade com o MariaDB e o kernel 2.2.14 do Linux. Se você estiver usando este kernel você deve atualizá-lo para o 2.2.19 (ou posterior) ou para o kernel 2.4. Se você tiver um gabinete multi-cpu, então você deve considerar seriamente o uso do kernel 2.4 uma vez que ele lhe trará uma melhora significante na velocidade.

A versão binária é ligada com -static, que significa que você normalmente não precisa se preocupar com qual versão das bibliotecas do sistema você tem. Você não precisa instalar LinuxThreads. Um programa ligado com a opção -static é um pouco maior que um programa ligado dinamicamente e também um pouco mais rápido (3-5%). Um problema, entretanto, é que você não pode usar funções definidas pelo usuário (UDF) com um programa ligado estaticamente. Se você for escrever ou usar funções UDF (isto é algo para programadores C ou C++), você deve compilar o MySQL, usando ligações dinamicas.

Se você estiver usando um sistema baseado em libc (em vez de um sistema glibc2), você, provavelmente, terá alguns problemas com resolução de nomes de máquinas e getpwnam() com a versão binária. (Isto é porque o glibc infelizmente depende de algumas bibliotecas externas para resolver nomes de máquinas e getpwent(), mesmo quando compilado com -static). Neste caso, você provavelmente obterá a seguinte mensagem de erro quando executar mysql_install_db:

Sorry, the host 'xxxx' could not be looked up

ou o seguinte erro quando você tentar executar mysqld com a opção --user:

getpwnam: No such file or directory

Você pode resolver este problema usando de um dos modos seguintes:

As distribuições binárias Linux-Intel e RPM do MariaDB são configuradas para o máximo de desempenho possível. Nós sempre tentamos usar o compilador mais rápido e estável disponível.

Suporte MariaDB ao Perl exige Perl Versão 5.004_03 ou mais novo.

Em algumas versões 2.2 do kernel Linux,você pode obter o erro Resource temporarily unavailable quando você faz várias novas conexões para um servidor mysqld sobre TCP/IP.

O problema é que o Linux tem um atraso entre o momento em que você fecha um socket TCP/IP até que ele seja realmente liberado pelo sistema. Como só existe espaço para um número finito de slots TCP/IP, você irá obter o erro acima se você tentar fazer muitas novas conexões TCP/IP durante um pequeno tempo, como quando você executa o benchmark do MariaDB test-connect sobre TCP/IP.

Nós enviamos emails sobre este problema várias vezes para diferentes listas de discussão Linux mas nunca conseguimos resolver este problema apropriadamente.

A única 'correção' conhecida , para este problema é usar conexões persistentes nos seus clientes ou usar sockets, se você estiver executando o servidor de banco de dados e clientes na mesma máquina. Nós experamos que o kernel Linux 2.4 corrija este problema no futuro.

Notas Linux x86

O MariaDB exige a versão 5.4.12 ou mais nova da libc. Sabe-se que funciona com a libc 5.4.46. A versão 2.0.6 e posterior da glibc também deve funcionar. Existem alguns problemas com os RPMs glibc da RedHat, portanto se você tiver problemas, confira se existe alguma atualização! Sabemos que os RPMs glibc 2.0.7-19 e 2.0.7-29 funcionam.

Se você estiver usando o Red Hat 8.0 ou uma nova biblioteca glibc 2.2.x, você deve iniciar o mysqld com a opção --thread-stack=192K (Use -O thread_stack=192K antes do MariaDB 4). Se você não fizer isto o mysqld finlizará em gethostbyaddr() porque a nova biblioteca glibc exige mais de 128K de memória na pilha para esta chamada. Este tamanho de pilha é o padrão agora no MariaDB 4.0.10 e acima.

Se você está usando o gcc 3.0 e acima para compilar o MySQL, você deve instalar a biblioteca libstdc++v3 antes de compilar o MySQL; se você não fizer isto, você obterá um erro sobre um símbolo __cxa_pure_virtual perdido durante a ligação.

Em algumas distribuições Linux mais antigas, configure pode produzir um erro como este:

Syntax error in sched.h. Change _P to __P in the /usr/include/sched.h file.
See the Installation chapter in the Reference Manual.

Faça apenas o que a mensagem de erro diz e adicione um caractere sublinhado para a macro _P que tem somente um caractere sublinhado e então tente novamente.

Você pode obter alguns aviso quando estiver compilando; os mostrados abaixo podem ser ignorados:

mysqld.cc -o objs-thread/mysqld.o mysqld.cc: In function `void init_signals()':
mysqld.cc:315: warning: assignment of negative value `-1' to
`long unsigned int'
mysqld.cc: In function `void * signal_hand(void *)':
mysqld.cc:346: warning: assignment of negative value `-1' to
`long unsigned int'

O mysql.server pode ser encontrado no diretório share/mysql sob o diretório de instalação MariaDB ou no diretório support-files da árvore fonte MySQL.

Se o mysqld sempre descarregar um core na inicialização, o problema pode ser que você tenha um antigo /lib/libc.a. Tente renomeá-lo depois remova sql/mysqld e faça um novo make install e tente novamente. Este problema foi relatado em algumas instalações Slackware.

Se você obter o seguinte erro quando ligar o mysqld, significa que seu libg++.a não está instalado corretamente:

/usr/lib/libc.a(putc.o): In function `_IO_putc':
putc.o(.text+0x0): multiple definition of `_IO_putc'

Você pode evitar o uso de libg++.a executando configure desta forma:

shell> CXX=gcc ./configure

Notas Linux SPARC

Em algumas implementações, readdir_r() está quebrada. O sintoma é que SHOW DATABASES sempre retorna um conjunto vazio. Isto pode ser corrigido removendo HAVE_READDIR_R do config.h depois de configurar e antes de compilar.

Notas Linux Alpha

O MariaDB Versão 3.23.12 é a primeira versão do MariaDB que é testada no Linux-Alpha. Se você planeja usar o MariaDB no Linux-Alpha, você deve ter certeza que possui esta versão ou mais nova.

Temos testado o MariaDB no Alpha com nossos pacotes de benchmarks e testes, e ele parece funcinar muito bem.

Quando nós compilamos o binários MariaDB padrões, nós estávamos usando SuSE 6.4, kernel 2.2.13-SMP, Compilador C Compaq (V6.2-504) e compilador C++ Compaq (V6.3-005) em uma máquina Compaq DS20 com um processador Alpha EV6.

Você pode encontrar os compiladores acima em http://www.support.compaq.com/alpha-tools. Usando estes compiladores, em vez do gcc, obtemos 9-14 % de melhora na performance com MySQL.

Note que a linha de configuração otimiza o binário para a CPU atual; isto significa que você só pode utilizar nosso binário se você tiver um processador Alpha EV6. Nós também compilamos estaticamente para evitar problemas de bibliotecas.

A partir das próximas distribuições adicionamos o parâmetro -arch generic em nossas opções de compilação, o qual assegura que o binário execute em todos os processadores Alpha. Nós também compilamos estaticamente para evitar problemas de bibliotecas.

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

Se você deseja usar egcs a seguinte linha de configuração funcionou para nós:

CFLAGS='-O3 -fomit-frame-pointer' CXX=gcc \
CXXFLAGS='-O3 -fomit-frame-pointer -felide-constructors \
-fno-exceptions -fno-rtti' ./configure --prefix=/usr/local/mysql \
--disable-shared

Alguns problemas conhecidos quando executamos o MariaDB no Linux-Alpha:

Notas Linux PowerPC

O MariaDB deve funcionar no MkLinux com o mais novo pacote glibc (testado com glibc 2.0.7).

Notas Linux MIPS

Para ter o MariaDB funcionando no Qube2. (Linux Mips), você precisará das bibliotecas glibc mais novas (Sabemos que glibc-2.0.7.29C2 funciona). Você também deve usar o compilador egcs C++ (egcs-1.0.2-9, gcc 2.95.2 ou mais nova).

Notas Linux IA-64

Para conseguir compilar o MariaDB no Linux Ia64, usamos a seguinte linha de compilação: Usando gcc-2.96:

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-comment=Official MariaDB binary' --with-extra-charsets=complex

No Ia64 os binários do cliente MariaDB estão usando bibliotecas compartilhadas. Isto significa se você instalar nossa distribuição binárias em algum outro lugar diferente de /usr/local/mysql você precisa modificar o /etc/ld.so.conf ou adicionar o caminho da o diretório onde está localizado o libmysqlclient.so na variável de ambiente LD_LIBRARY_PATH.

See Seção A.3.1, 'Problemas de Ligação com a Biblioteca do Cliente MySQL'.

Notas Solaris

Notas Solaris 2.7/2.8
Notas Solaris x86

No Solaris, você deve ter problemas mesmo antes de descompactar a distribuição MySQL! O tar do Solaris não pode tratar grandes nomes de arquivos, portanto você pode ver um erro deste tipo quando descompactar o MySQL:

x mysql-3.22.12-beta/bench/Results/ATIS-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase, 0 bytes, 0 tape blocks tar: directory checksum error

Neste caso, você deve usar o GNU tar (gtar) para desempacotar a distribuição. Você pode encontrar uma cópia pré-compilada para Solaris em http://www.mysql.com/downloads/os-solaris.html.

As threads nativas da Sun funcionam somente no Solaris 2.5 e superior. Para a versão 2.4 e anteriores, o MariaDB irá automaticamente usar MIT-pthreads. Leia 'Notas MIT-pthreads'.

Se você obter o seguinte erro de configure:

checking for restartable system calls... configure: error can not run test programs while cross compiling

Isto significa que alguma coisa está errada com a instalação de seu compilador! Neste caso você deve atualizar seu compilador para uma versão mais nova. Você também pode resolver este problema inserindo a seguinte linha no arquivo config.cache:

ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls='no'}

Se você está usando Solaris em um SPARC, o compilador recomendado é o gcc 2.95.2. Você pode encontrá-lo em http://gcc.gnu.org/. Perceba que egcs 1.1.1 e gcc 2.8.1 não são estáveis no SPARC!

A linha do configure recomendado quando usando gcc 2.95.2 é:

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

Se você possui um ultra sparc, você pode obter 4% a mais de performance adicionando '-mcpu=v8 -Wa,-xarch=v8plusa' para a CFLAGS e CXXFLAGS.

Se você possui o compilador Sun Workshop (Fortre) 5.3 (ou mais novo), você pode executar configure da seguinte forma:

CC=cc CFLAGS='-Xa -fast -native -xstrconst -mt' \
CXX=CC CXXFLAGS='-noex -mt' \
./configure --prefix=/usr/local/mysql --enable-assembler

Você pode criar um binário de 64 bits usando o compilador Forte da Sun com os seguintes parâmetros de compilação:

CC=cc CFLAGS='-Xa -fast -native -xstrconst -mt -xarch=v9' \
CXX=CC CXXFLAGS='-noex -mt -xarch=v9' ASFLAGS='-xarch=v9' \
./configure --prefix=/usr/local/mysql --enable-assembler

Para criar um binário de 64 bits do Solaris usando gcc, e -m64 para CFLAGS e CXXFLAGS. Note que isto só funciona com o MariaDB e acima - o MariaDB 3.23 não inclui as modificações exigidas para suportar isto.

No benchmark do MariaDB, conseguimos um aumento de velocidade de 4% em um UltraSPARC usando o Forte 5.0 no modo 32 bit em comparação com o uso do gcc 3.2 com o parametro -mcpu.

Se você criar um binário de 64 bits, ele será 4$ mais lento que o binário de 32 bits, mas o mysqld poderá tratar mais threads e memória.

Se você tiver um problema com fdatasync ou sched_yield, você pode corrigir isto adicionando LIBS=-lrt para a linha de configuração

O seguinte paragráfo é relevante somente para compiladores mais antigos que o WorkShop 5.3:

Você também pode ter que editar o script configure para alterar esta linha:

#if !defined(__STDC__) || __STDC__ != 1

para isto:

#if !defined(__STDC__)

Se você ligar __STDC__ com a opção -Xc, o compilador Sun não pode compilar com o arquivo de cabeçalho pthread.h do Solaris. Isto é um bug da Sun (compilador corrompido ou arquivo include corrompido).

Se o mysqld emitir a mensagem de erro mostrada abaixo quando você executá-lo, você deve tentar compilar o MariaDB com o compilador Sun sem habilitar a opção multi-thread (-mt):

libc internal error: _rmutex_unlock: rmutex not held

Adicione -mt a CFLAGS e CXXFLAGS e tente novamente.

Se você estiver usando a versão SFW do gcc (que vem com o Solaris 8), você deve adicionar /opt/sfw/lib a variável de ambiente LD_LIBRARY_PATH antes de executar a configuração.

Se você estiver usando o gcc disponível em sunfreeware.com, você pode ter muitos problemas. Você deve recompilar o gcc e GNU binutils na máquina que você o executará para evitar qualquer problema.

Se você obter o seguinte erro quando estiver compilando o MariaDB com gcc, significa que seu gcc não está configurado para sua versão de Solaris:

shell> gcc -O3 -g -O2 -DDBUG_OFF -o thr_alarm ...
./thr_alarm.c: In function `signal_hand':
./thr_alarm.c:556: too many arguments to function `sigwait'

A coisa apropriada para fazer neste caso é obter a versão mais nova do gcc e compilá-lo com seu compilador gcc atual! Ao menos para o Solaris 2.5, a maioria das versões binárias de gcc tem arquivos inúteis e antigos que irão quebrar todos programas que usam threads (e possivelmente outros programas)!

O Solaris não fornece versões estáticas de todas bibliotecas de sistema (libpthreads) e libdl), portanto você não pode compilar o MariaDB com --static. Se você tentar fazer isto, receberá o erro:

ld: fatal: library -ldl: not found ou undefined reference to `dlopen'
ou cannot find -lrt

Se vários processos tentar conectar muito rapidamente ao mysqld, você verá este erro no log do MariaDB:

Error in accept: Protocol error

Você deve tentar iniciar o servidor com a opção --set-variable back_log=50 como uma solução para esta situação. Note que --set-variable=nome=valor e -O nome=valor está obsoleto desde o MariaDB 4.0. Use apenas --back_log=50. Leia 'Opções de Linha de Comando do mysqld'.

Se você está ligando seu próprio cliente MySQL, você deve obter o seguinte erro quando tentar executá-lo:

ld.so.1: ./my: fatal: libmysqlclient.so.#:
open failed: No such file or directory

O problema pode ser evitado por um dos seguintes métodos:

Se você tiver problemas com o configure tentando ligar com -lz e você não tem a zlib instalada, você terá duas opções:

Se você estiver usando o gcc e tiver problemas carregando funções UDF no MySQL, tente adicionar -lgcc para a linha de ligação para a função UDF.

Se você deseja que o MariaDB inicie automaticamente, você pode copiar support-files/mysql.server para /etc/init.d e criar um link simbólico para ele, chamado /etc/rc.3.d/S99mysql.server.

Como o Solaris não suporta core files para aplicações setuid(), você não pode obter um core file do mysqld se você estiver usando a opção --user.

Notas Solaris 2.7/2.8

Você pode utilizar normalmente um binário Solaris 2.6 no Solaris 2.7 e 2.8. A maioria dos detalhes do Solaris 2.6 também se aplicam ao Solaris 2.7 e 2.8.

Note que o MariaDB versão 3.23.4 e superiores devem estar aptos para autodetectar novas versões do Solaris e habilitar soluções para os problemas seguintes!

Solaris 2.7 / 2.8 tem alguns bugs nos arquivos include. Você pode ver o seguinte erro quando você usa o gcc:

/usr/include/widec.h:42: warning: `getwc' redefined
/usr/include/wchar.h:326: warning: this is the location of the previous definition

Se isto ocorrer, você pode fazer o seguinte para corrigir o problema:

Copie /usr/include/widec.h para .../lib/gcc-lib/os/gcc-version/include e mude a linha 41 :

#if !defined(lint) && !defined(__lint)
para
#if !defined(lint) && !defined(__lint) && !defined(getwc)

Uma alternativa é editar o /usr/include/widec.h diretamente. Desta forma, depois de fazer a correção, você deve remover o config.cache e executar o configure novamente !

Se você obter erros como estes quando você executar o make, é porque o configure não encontrou o arquivo curses.h (provavelmente devido ao erro no arquivo /usr/include/widec.h):

In file included from mysql.cc:50:
/usr/include/term.h:1060: syntax error before `,'
/usr/include/term.h:1081: syntax error before `;'

A solução para isto é fazer uma das seguintes opções:

Se o seu ligador tiver problemas para encontrar o -lz quando ligar ao seu programa cliente, provavelmente o problema é que seu arquivo libz.so está instalado em /usr/local/lib. Você pode corrigir isto usando um dos seguintes métodos:

Notas Solaris x86

No Solaris 8 no x86, mysqld irá descarregar um core se você executar um 'strip' no mesmo.

Se você estiver usando gcc ou egcs no Solaris X86 e você tiver problemas com descarregos de core, você deve utilizar o seguinte comando configure:

CC=gcc CFLAGS='-O3 -fomit-frame-pointer -DHAVE_CURSES_H' \
CXX=gcc \
CXXFLAGS='-O3 -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti -DHAVE_CURSES_H' \
./configure --prefix=/usr/local/mysql

Isto irá evitar problemas com a biblioteca libstdc++ e com exceções C++.

Se isto não ajudar, você pode compilar uma versão com debug e executá-lo com um arquivo de ratreamento (trace) ou sob gdb. Leia Seção E.1.3, 'Depurando o mysqld no gdb'.

Notas BSD

Notas FreeBSD
Notas NetBSD
Notas OpenBSD
Notas OpenBSD 2.8
Notas BSDI Versão 2.x
Notas BSD/OS Versão 3.x
Notas BSD/OS Versão 4.x

Esta seção fornece informação para os vários tipos de BSD, assim como a versão específica para eles.

Notas FreeBSD

FreeBSD 4.x ou mais novo é recomendado para executação do MariaDB uma vez que o pacote thread é muito mais integrado.

A mais fácil e portanto a forma preferida para instalá-lo é usar as portas mysql-server e mysql-client disponíveis em http://www.freebsd.org.

Usando-as você obtem:

É recomendado que você utilize MIT-pthreads no FreeBSD 2.x e threads nativas nas Versões 3 e superiores. É possível executar com threads nativas em algumas versões antigas (2.2.x) mas você pode encontrar problemas ao finalizar o mysqld.

Infelizmente algumas chamadas de funções no FreeBSD ainda não são totalmente seguras com threads, principalmente a função gethostbyname(), que é usada pelo MariaDB para converter nomes de máquinas em endereços IPs. Sob certas circunstâncias, o processo mysqld irá criar repentinamente um carga de CPU de 100% e ficará sem resposta. Se você se deparar com isto, tente iniciar o MariaDB usando a opção --skip-name-resolve.

Alternativamente, você pode ligar o MariaDB no FreeBSD 4.x com a biblioteca LinuxThreads, que evita uns poucos problemas que a implementação da thread nativa do FreeBSD tem. Para uma comparação muito boa do LinuxThreads vs. threads nativas dê uma olhada no artigo 'FreeBSD or Linux for your MariaDB Server?' de Jeremy Zawodny em http://jeremy.zawodny.com/blog/archives/000697.html

Os problemas conhecidos usando LinuxThreads na FreeBSD são:

O Makefile do MariaDB necessita o GNU make (gmake) para funcionar. Se você deseja compilar o MySQL, antes você precisará instalar o GNU make.

Tenha certeza que sua configuração de resolução de nomes esteja correta. De outra forma você vai ter atrasos na resolução ou falhas quando conectar ao mysqld.

Tenha certeza que a entrada localhost no arquivo /etc/hosts esteja correta (de outra forma você irá ter problemas conectando ao banco de dados). O arquivo /etc/hosts deve iniciar com a linha:

127.0.0.1 localhost localhost.seu.dominio

O modo recomendado de compilar e instalar o MariaDB no FreeBSD com gcc (2.95.2 e acima) é:

CC=gcc CFLAGS='-O2 -fno-strength-reduce' \
CXX=gcc CXXFLAGS='-O2 -fno-rtti -fno-exceptions -felide-constructors \
-fno-strength-reduce' \
./configure --prefix=/usr/local/mysql --enable-assembler gmake gmake install
./scripts/mysql_install_db cd /usr/local/mysql
./bin/mysqld_safe &

Se você percber que o configure usará MIT-pthreads, você de ler as notas sobre MIT-pthreads. Leia 'Notas MIT-pthreads'.

Se o make install não puder encontrar /usr/include/pthreads, é porque o configure não detectou que você precisava de MIT-pthreads. Isto é corrigido executando estes comandos:

shell> rm config.cache
shell> ./configure --with-mit-threads

O FreeBSD é também conhecido por ter um limite muito baixo para o manipulador de arquivos. Leia Seção A.2.17, 'Arquivo Não Encontrado'. Descomente a seção ulimit -n no mysqld_safe ou aumente os limites para o usuário mysqld no /etc/login.conf (e reconstrua-o com cap_mkdb /etc/login.conf). Também tenha certeza que você configurou a classe apropriada para este usuário no arquivo de senhas (password) se você não estiver usando o padrão (use: chpass nome_usuario_mysqld). Leia 'mysqld-safe, o wrapper do mysqld'.

Se você tiver muita memória você deve considerar em reconstruir o Kernel para permitir o MariaDB de usar mais de 512M de RAM. Dê uma olhada na opção MAXDSIZ na arquivo de configuração LINT para maiores informações.

Se você tiver problemas com a data atual no MySQL, configurar a variável TZ provavelmente ajudará. Leia Apêndice F, Variáveis de Ambientes do MariaDB.

Para obter um sistema seguro e estável você deve usar somente kernels FreeBSD que estejam marcados com -STABLE.

Notas NetBSD

Para compilar no NetBSD você precisa do GNU make. De outra forma o compilador quebraria quando o make tentasse executar lint em arquivos C++.

Notas OpenBSD

No OpenBSD Versão 2.5, você pode compilar o MariaDB com threads nativas com as seguintes opções:

CFLAGS=-pthread CXXFLAGS=-pthread ./configure --with-mit-threads=no

Notas OpenBSD 2.8

Nossos usuários relataram que o OpenBSD 2.8 tem um bug nas threads que causa problemas com o MariaDB. Os desenvolvedores do OpenBSD já corrigiram o problema, mas em 25 de Janeiro de 2001 a correção foi disponível apenas no ramo -current. Os sintomas deste bug nas threads são: resposta lenta, alta carga, alto uso de CPU e quedas do servidor.

Se você obter um erro como Error in accept:: Bad file descriptor ou erro 9 ao tentar abrir tabelas ou diretórios, o problema é provavelmente que você não alocou memória suficiente para os descritores de arquivo do MariaDB.

Neste caso tente iniciar o mysqld_safe como root com as seguintes opções:

shell> mysqld_safe --user=mysql --open-files-limit=2048 &

Notas BSDI Versão 2.x

Se você obter o seguinte erro quando estiver compilando o MySQL, seu valor ulimit para memória virtual é muito baixo:

item_func.h: In method `Item_func_ge::Item_func_ge(const Item_func_ge &)':
item_func.h:28: virtual memory exhausted make[2]: *** [item_func.o] Error 1

Tente usar ulimit -v 80000 e executar o make novamente. Se isto não funcionar e você estiver usando o bash, tente trocar para csh ou sh; alguns usuários BSDI relataram problemas com bash e ulimit.

Se você utiliza gcc, você pode também ter de usar a opção --with-low-memory para o configure estar apto a compilar o sql_yacc.cc.

Se você tiver problemas com a data atual no MySQL, configurar a variável TZ provavelmente ajudará. Leia Apêndice F, Variáveis de Ambientes do MariaDB.

Notas BSD/OS Versão 3.x

Atualize para BSD/OS Versão 3.1. Se isto não for possível, instale BSDIpatch M300-038.

Use o seguinte comando quando configurar o MySQL:

shell> env CXX=shlicc++ CC=shlicc2 \
 ./configure \
 --prefix=/usr/local/mysql \
 --localstatedir=/var/mysql \
 --without-perl \
 --with-unix-socket-path=/var/mysql/mysql.sock

O comeando seguinte também funciona:

shell> env CC=gcc CXX=gcc CXXFLAGS=-O3 \
 ./configure \
 --prefix=/usr/local/mysql \
 --with-unix-socket-path=/var/mysql/mysql.sock

Você pode alterar as localizações dos diretórios se você desejar, ou apenas usar os padrões não especificando nenhuma localização.

Se você tiver problemas com performance sob alta carga, tente usar a opção --skip-thread-priority para mysqld! Isto irá executar todas as threads com a mesma prioridade; no BSDI versão 3.1, isto fornece melhor performance (pelo menos até o BSDI corrigir seu organizador de threads).

Se você obter o erro virtual memory exhausted enquanto estiver compilando, deve tentar usar ulimit -v 80000 e executar make novamente. Se isto não funcionar e você estiver usando bash, tente trocar para csh ou sh; alguns usuários BSDI relataram problemas com bash e ulimit.

Notas BSD/OS Versão 4.x

O BSDI Versão 4.x tem alguns bugs relacionados às threads. Se você deseja usar o MariaDB nesta versão, você deve instalar todas as correções relacionadas às threads. Pelo menos a M400-23 deve estar instalada.

Em alguns sistemas BSDI versão 4.x, você pode ter problemas com bibliotecas compartilhadas. O sintoma é que você não pode executar nenhum programa cliente, por exemplo, mysqladmin. Neste caso você precisa reconfigurar o MySQL, para ele não usar bibliotecas compartilhadas, com a opção --disable-shared.

Alguns clientes tiveram problemas no BSDI 4.0.1 que o binário do mysqld não conseguia abrir tabelas depois de um tempo em funcionamento. Isto é porque alguns bugs relacionados a biblioteca/sistema fazem com que o mysqld altere o diretório atual sem nenhuma informação!

A correção é atualizar para a 3.23.34 ou depois de executar configure remova a linha $define HAVE_REALPATH de config.h antes de executar o make.

Perceba que com isso você não pode fazer um link simbólico de um diretório de banco de dados para outro diretório ou fazer um link simbólico a uma tabela para outro banco de dados no BSDI! (Criar um link simbólico para outro disco funciona).

Notas Mac OS X

Mac OS X 10.x
Mac OS X Server 1.2 (Rhapsody)

Mac OS X 10.x

O MariaDB deve funcionar sem problemas no Mac OS X 10.x (Darwin). Você não precisa dos patches pthread para este SO.

Isto também se aplica ao Mac OS X 10.x Server. A compilação para a plataforma Server é a mesma para a versão cliente do Mac OS X. No entanto note que o MariaDB vem preinstalado no Servidor !

Nosso binário para Mac OS X é compilado no Darwin 6.3 com a seguinte linha de configuração:

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

See 'Instalando o MariaDB no Mac OS X'.

Mac OS X Server 1.2 (Rhapsody)

Antes de tentar configurar o MariaDB no MAC OS X server 1.2 (aka Rhapsody), primeiro você deve instalar o pacote pthread encontrado em: http://www.prnet.de/RegEx/mysql.html.

See 'Instalando o MariaDB no Mac OS X'.

Notas de Outros Unix

Notas HP-UX para distribuições binárias
Notas HP-UX Versão 10.20
Notas HP-UX Versão 11.x
Notas IBM-AIX
Notas SunOS 4
Notas Alpha-DEC-UNIX (Tru64)
Notas Alpha-DEC-OSF1
Notas SGI Irix
Notas SCO
Notas SCO Unixware Version 7.0

Notas HP-UX para distribuições binárias

Alguma das distribuições binárias do MariaDB para HP-UX é distribuida como um arquivo depot da HP e como um arquivo tar. Para usar o arquivo depot você deve estar executando pelo menos o HP-UX 10.x para ter acesso às ferramentas de arquivos depot da HP.

A versão HP do MariaDB foi compilada em um servidor HP 9000/8xx sob HP-UX 10.20, usando MIT-pthreads. Sob esta configuração o MariaDB funciona bem. O MariaDB Versão 3.22.26 e mais novas também podem ser construidas com o pacote thread nativo da HP.

Outras configurações que podem funcionar:

As seguintes configurações definitivamente não funcionarão:

Para instalar a distribuição, utilze um dos comandos abaixo, onde /path/to/depot é o caminho completo do arquivo depot:

O depot copia os binários e bibliotecas em /opt/mysql e dados em /var/opt/mysql. O depot também cria as entradas apropriadas em /etc/init.d e /etc/rc2.d para iniciar o servidor automaticamente na hora do boot. Obviamente, para instalar o usuário deve ser o root.

Para instalar a distribuição HP-UX tar.gz, você deve ter uma cópia do GNU tar.

Notas HP-UX Versão 10.20

Existem alguns pequenos problemas quando compilamos o MariaDB no HP-UX. Nós recomendamos que você use o gcc no lugar do compilador nativo do HP-UX, porque o gcc produz um código melhor!

Nós recomendamos o uso do gcc 2.95 no HP-UX. Não utilize opções de alta otimização (como -O6) ja que isto pode não ser seguro no HP-UX.

A seguine linha do configure deve funcionar com o gcc 2.95:

CFLAGS='-I/opt/dce/include -fpic' \
CXXFLAGS='-I/opt/dce/include -felide-constructors -fno-exceptions \
-fno-rtti' CXX=gcc ./configure --with-pthread \
--with-named-thread-libs='-ldce' --prefix=/usr/local/mysql --disable-shared

A seguinte linha do configure deve funcionar com o 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

Notas HP-UX Versão 11.x

Para HP-UX Versão 11.x nós recomendamos o MariaDB Versão 3.23.15 ou posterior.

Por causa de alguns bugs críticos nas bibliotecas padrão do HP-UX, você deve instalar as seguintes correções antes de tentar executar o MariaDB no HP-UX 11.0:

PHKL_22840 Streams cumulative PHNE_22397 ARPA cumulative

Isto irá resolver um problema que tem como retorno EWOLDBLOCK de recv() e EBADF de accept() em aplicações threads.

Se você estiver usando gcc 2.95.1 em um sistema HP-UX 11.x sem correções, você obterá o erro:

In file included from /usr/include/unistd.h:11,
 from ../include/global.h:125,
 from mysql_priv.h:15,
 from item.cc:19:
/usr/include/sys/unistd.h:184: declaration of C function ...
/usr/include/sys/pthread.h:440: previous declaration ...
In file included from item.h:306,
 from mysql_priv.h:158,
 from item.cc:19:

O problema é que o HP-UX não define consistentemente a pthreads_atfork(). Ela tem protótipos coflitantes em /usr/include/sys/unistd.h:184 e /usr/include/sys/pthread.h:440 (detalhes abaixo).

Uma solução é copiar /usr/include/sys/unistd.h em mysql/include e editar unistd.h alterando-o para coincidir com a definição em pthread.h. Aqui está o diff:

183,184c183,184
< extern int pthread_atfork(void (*prepare)(), void (*parent)(),
< void (*child)());
---
> extern int pthread_atfork(void (*prepare)(void), void (*parent)(void),
> void (*child)(void));

Depois disto, a seguinte linha configure deve funcionar:

CFLAGS='-fomit-frame-pointer -O3 -fpic' CXX=gcc \
CXXFLAGS='-felide-constructors -fno-exceptions -fno-rtti -O3' \
./configure --prefix=/usr/local/mysql --disable-shared

Segue algumas inforamações que um usuário do HP-UX Versão 11.x nos enviou sobre compilação do MariaDB com o compilador HP-UX:

CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64 ./configure --with-extra-character-set=complex

Você pode ignorar qualquer erro do tipo:

aCC: warning 901: unknown option: `-3': use +help for online documentation

Se você obter o seguinte erro do configure

checking for cc option to accept ANSI C... no configure: error: MariaDB requires a ANSI C compiler (and a C++ compiler).
Try gcc. See the Installation chapter in the Reference Manual.

Confira se você não tem o caminho para o compilador K&R antes do caminho para o compilador C e C++ do HP-UX.

Outra razão para não estar compilando é você não definir o parâmetro +DD64 acima.

Outra possibilidade para o HP-UX 11 é usar o binário MariaDB para HP-UX 10.20. Recebemos relatos de alguns usuários de que esses binários funcionam bem no HP-UX 11.00. Se você encontrar problemas, verifique o nível do pacth de seu HP-UX.

Notas IBM-AIX

Detecção automática de xlC está faltando no Autoconf, portando um comando configure deste tipo é necessário quando estiver compilando o MariaDB (Este exemplo usa o compilador IBM):

export CC='xlc_r -ma -O3 -qstrict -qoptimize=3 -qmaxmem=8192 '
export CXX='xlC_r -ma -O3 -qstrict -qoptimize=3 -qmaxmem=8192'
export CFLAGS='-I /usr/local/include'
export LDFLAGS='-L /usr/local/lib'
export CPPFLAGS=$CFLAGS export CXXFLAGS=$CFLAGS
./configure --prefix=/usr/local \
 --localstatedir=/var/mysql \
 --sysconfdir=/etc/mysql \
 --sbindir='/usr/local/bin' \
 --libexecdir='/usr/local/bin' \
 --enable-thread-safe-client \
 --enable-large-files

Acima estão as opções usadas para compilar a distribuição MariaDB que pode ser encontrada em http://www-frec.bull.com/.

Se você alterar o -O3 para -O2 na linha de configuração acima, você também deve remover a opção -qstrict (isto é uma limitação no compilador C da IBM).

Se você estiver usando gcc ou egcs para compilar o MySQL, você DEVE usar a opção -fno-exceptions, já que o manipulador de exceções no gcc/egcs não é seguro para threads! (Isto foi testado com egcs 1.1). Existem também alguns problemas conhecidos com o assembler da IBM que pode gerar código errado quando usado com gcc.

Nós recomendamos a seguinte linha do configure com egcs e gcc 2.95 no AIX:

CC='gcc -pipe -mcpu=power -Wa,-many' \
CXX='gcc -pipe -mcpu=power -Wa,-many' \
CXXFLAGS='-felide-constructors -fno-exceptions -fno-rtti' \
./configure --prefix=/usr/local/mysql --with-low-memory

O -Wa,-many é necessário para o compilador ser bem sucedido. IBM está ciente deste problema mas não está com pressa de corrigí-lo devido ao fato do problema poder ser contornado. Nós não sabemos se o -fno-exceptions é necessário com gcc 2.9.5, mas como o MariaDB não utiliza exceções e a opção acima gera código mais rápido, recomendamos que você sempre use esta opção com o egcs/gcc.

Se você tiver algum problema com código assembler tente alterar o -mcpu=xxx para o seu processador. Normalmente power2, power ou powerpc podem ser usados, de uma maneira alternativa você pode precisar usar 604 ou 604e. Não tenho certeza mas acredito que usar 'power' deve satisfazer a maioria dos casos, mesmo em uma máquina power2.

Se você não sabe qual é o seu processador, utilize o comando 'uname -m', isto irá fornecer a você uma string que parece com '000514676700', com um formato de xxyyyyyymmss onde xx e ss são sempre 0s, yyyyyy é o ID único do sistema e mm é o ID da CPU Planar. Uma tabela destes valores podem ser encontrados em http://publib.boulder.ibm.com/doc_link/en_US/a_doc_lib/cmds/aixcmds5/uname.htm. Isto irá lhe fornecer um tipo de máquina e um modelo de máquina que você pode usar para determinar que tipo de cpu você tem.

Se você tiver problemas com sinais (MySQL finaliza sem notificação sob alta carga) você pode ter encontrado um bug de SO com threads e sinais. Neste caso você pode dizer ao MariaDB para não usar sinais configurando-o com:

shell> CFLAGS=-DDONT_USE_THR_ALARM CXX=gcc \
 CXXFLAGS='-felide-constructors -fno-exceptions -fno-rtti \
 -DDONT_USE_THR_ALARM' \
 ./configure --prefix=/usr/local/mysql --with-debug --with-low-memory

Isto não afeta a performance do MariaDB, mas tem o efeito colateral que você não pode matar clientes que estão dormindo em uma conexão com mysqladmin kill ou mysqladmin shutdown. Neste caso, o cliente morrerá quando ele chegar no próximo comando.

Em algumas versões do AIX, ligando com libbind.a faz o getservbyname descarregar core. Isto é erro no AIX e deve ser relatado para a IBM.

Para o AIX 4.2.1 e gcc você tem que fazer as seguintes alterações.

Depois de configurar, edite o config.h e include/my_config.h e altere a linha que diz

#define HAVE_SNPRINTF 1

para

#undef HAVE_SNPRINTF

E finalmente, no mysqld.cc você precisa adicionar um protótipo para initgroups.

#ifdef _AIX41
extern 'C' int initgroups(const char *,int);
#endif

Se você precisar se alocar muita memória para o processo mysqld, não é suficiente apenas definir 'ulimit -d unlimited'. Você também deve configurar no mysqld_safe algo do tipo:

export LDR_CNTRL='MAXDATA=0x80000000'

Você pode encontrar mais sobre o uso de muita memória em: http://publib16.boulder.ibm.com/pseries/en_US/aixprggd/genprogc/lrg_prg_support.htm.

Notas SunOS 4

No SunOS 4, é necessário a MIT-pthreads para compilar o MySQL, o que significa que você precisa do GNU make.

Alguns sistemas SunOS 4 tem problemas com bibliotecas dinâmicas e libtool. Você pode usar a seguinte linha do configure para evitar este problema:

shell> ./configure --disable-shared --with-mysqld-ldflags=-all-static

Quando compilando readline, você pode obter alguns avisos sobre definições duplicadas que podem ser ignoradas.

Ao compilar o mysqld, vão existir alguns alertas sobre implicit declaration of function que também podem ser ignoradas.

Notas Alpha-DEC-UNIX (Tru64)

Se você está usando o egcs 1.1.2 no Digital Unix, você atualizar par o gcc 2.95.2, já que o egcs no DEC tem vários erros graves !

Quando compilando programas com threads no Digital Unix, a documentação recomenda usar a opção -pthread para cc e cxx e as bibliotecas -lmach -lexc (em adição para -lpthread). Você deve executar o configure parecido com isto:

CC='cc -pthread' CXX='cxx -pthread -O' \
./configure --with-named-thread-libs='-lpthread -lmach -lexc -lc'

Quando compilando o mysqld, você deve ver alguns avisos como estes:

mysqld.cc: In function void handle_connections()':
mysqld.cc:626: passing long unsigned int *' as argument 3 of accept(int,sockadddr *, int *)'

Você pode ignorar estes altertas com segurança. Eles ocorrem porque o configure só pode detectar erros e não alertas.

Se você inicia o servidor diretamente da linha de comando, você pode ter problemas com a finalização do servidor ao sair (log out). (Quando você sai, seu processo superior recebe um sinal SIGHUP.) Se isto acontecer, tente iniciar o servidor desta forma:

shell> nohup mysqld [options] &

nohup faz com que o comando que o segue ignore qualquer sinal SIGHUP enviado pelo terminal. De forma alternativa, inicie o servidor executando mysqld_safe, o qual invoca o mysqld usando nohup por você. Leia 'mysqld-safe, o wrapper do mysqld'.

Se você tiver problemas quando compilar mysys/get_opt.c, apenas remova a linha #define _NO_PROTO do inicio do arquivo!

Se você estiver utilizando o compilador CC da Compac, a seguinte linha de configuração deverá funcionar:

CC='cc -pthread'
CFLAGS='-O4 -ansi_alias -ansi_args -fast -inline speed all -arch host'
CXX='cxx -pthread'
CXXFLAGS='-O4 -ansi_alias -ansi_args -fast -inline speed all -arch host \
-noexceptions -nortti'
export CC CFLAGS CXX CXXFLAGS
./configure \
--prefix=/usr/local/mysql \
--with-low-memory \
--enable-large-files \
--enable-shared=yes \
--with-named-thread-libs='-lpthread -lmach -lexc -lc'
gnumake

Se você tiver problemas com a libtool, ao compilar com bibliotecas compartilhadas como no exemplo acima, quando estiver ligando ao mysqld, você deve conseguir contornar este problema usando:

cd mysql
/bin/sh ../libtool --mode=link cxx -pthread -O3 -DDBUG_OFF \
-O4 -ansi_alias -ansi_args -fast -inline speed \
-speculate all \ -arch host -DUNDEF_HAVE_GETHOSTBYNAME_R \
-o mysql mysql.o readline.o sql_string.o completion_hash.o \
../readline/libreadline.a -lcurses \
../libmysql/.libs/libmysqlclient.so -lm cd ..
gnumake gnumake install scripts/mysql_install_db

Notas Alpha-DEC-OSF1

Se você tiver problemas com compilação e tem o DEC CC e o gcc instalados, tente executar o configure desta forma:

CC=cc CFLAGS=-O CXX=gcc CXXFLAGS=-O3 \
./configure --prefix=/usr/local/mysql

Se você tiver problemas com o arquivo c_asm.h, você pode criar e usar um arquivo c_asm.h 'burro' com:

touch include/c_asm.h CC=gcc CFLAGS=-I./include \
CXX=gcc CXXFLAGS=-O3 \
./configure --prefix=/usr/local/mysql

Perceba que os seguintes problemas com o programa ld pode ser corrigido fazendo o download do último kit de atualização da DEC (Compaq) de http://ftp.support.compaq.com/public/unix/.

Com o OSF1 V4.0D e o compilador 'DEC C V5.6-071 no Digital Unix V4.0 (Rev. 878)' o compilador tem alguns comportamentos estranhos (simbolos asm indefinidos). /bin/ld também aparece estar quebrado (problemas com erros _exit undefined ocorrendo ao ligar no mysqld). Neste sistema, temos compilado o MariaDB com a seguinte linha configure, depois de substituir /bin/ld com a versão do OSF 4.0C:

CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql

Com o compilador da Digital 'C++ V6.1-029', o seguinte deve funcionar:

CC=cc -pthread CFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all \
 -arch host CXX=cxx -pthread CXXFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all \
 -arch host -noexceptions -nortti export CC CFLAGS CXX CXXFLAGS
./configure --prefix=/usr/mysql/mysql --with-mysqld-ldflags=-all-static \
 --disable-shared --with-named-thread-libs='-lmach -lexc -lc'

Em algumas versões do OSF1, a função alloca() está quebrada. Corrija isto removendo a linha no config.h que define 'HAVE_ALLOCA'.

A função alloca() pode também ter um protótipo incorreto em /usr/include/alloca.h. O alerta resultante deste erro pode ser ignorado.

configure irá usar a seguinte biblioteca thread automaticamente: --with-named-thread-libs='-lpthread -lmach -lexc -lc'.

Quando usar o gcc, você também pode tentar executar configure desta forma:

shell> CFLAGS=-D_PTHREAD_USE_D4 CXX=gcc CXXFLAGS=-O3 ./configure ....

Se você tiver problemas com sinais (MySQL finalzar inesperadamente sobre alta carga), você pode ter encontrado um erro com threads e sinais no SO. Neste caso você pode dizer ao MariaDB para não usar sinais configurando-o com:

shell> CFLAGS=-DDONT_USE_THR_ALARM \
 CXXFLAGS=-DDONT_USE_THR_ALARM \
 ./configure ...

Isto não afeta a performance do MariaDB, mas tem efeitos colaterais que não permitem finalizar clientes que estão dormindo em uma conexão com mysqladmin kill ou mysqladmin shutdown. Neste caso o cliente irá morrer quando ele receber o próximo comando.

Com gcc 2.95.2, você provavelmente encontrará o seguinte erro de compilação:

sql_acl.cc:1456: Internal compiler error in `scan_region', at except.c:2566
Please submit a full bug report.

Para corrigir isto você deve alterar para o diretório sql e fazer um corta e cola da última linha gcc, mas altere -O3 para -O0 (ou adicione -O0 imediatamente depois de gcc se você não tiver algumas opção -O na sua linha de compilação.) Depois disto feito você deve apenas voltar ao diretório superior e executar make novamente.

Notas SGI Irix

Se você estiver usando Irix Versão 6.5.3 ou mais novo, o mysqld só irá conseguir criar threads se você executá-lo como um usuário com privilégios de CAP_SCHED_MGT (como root) ou dar ao servidor mysqld este privilégio com o seguinte comando shell:

shell> chcap 'CAP_SCHED_MGT+epi' /opt/mysql/libexec/mysqld

Você pode precisar indefinir alguns simbolos em config.h depois de executar configure e antes de compilar.

Em algumas implementações Irix, a função alloca() está quebrada. Se o servidor mysqld morrer em alguma instrução SELECT, remova as linhas de config.h que definem HAVE_ALLOC e HAVE_ALLOC_H. Se mysqladmin create não funciona, remova a linha do config.h que define HAVE_READDIR_R. Você também deve precisar remover a linha HAVE_TERM_H.

A SGI recomenda que você instale todos os patches desta página: http://support.sgi.com/surfzone/patches/patchset/6.2_indigo.rps.html

No mínimo, você deve instalar o último rollup do kernel, o último rollup rld, e o último rollup libc.

Definitivamente você precisará de todos patches POSIX nesta página, para suporte pthreads:

http://support.sgi.com/surfzone/patches/patchset/6.2_posix.rps.html

Se você obter o seguinte erro quando estiver compilando o mysql.cc:

'/usr/include/curses.h', line 82: error(1084): invalid combination of type

Digite o seguinte no diretório topo da sua árvore fonte do MariaDB:

shell> extra/replace bool curses_bool < /usr/include/curses.h \
> include/curses.h
shell> make

Existem relatos de problemas com organização de threads. Se somente uma thread estiver executando, o sistema fica lento. Pode se evitar isto iniciando outro cliente. Isto pode acarretar num crescimento de 2 para 10 vezes na velocidade de execução para a outra thread. Isto é um problema não compreendido com threads Irix; você deve improvisar para encontrar soluções até que isto seja resolvido.

Se você estiver compilando com gcc, você pode usar o seguinte comando configure:

CC=gcc CXX=gcc CXXFLAGS=-O3 \
./configure --prefix=/usr/local/mysql --enable-thread-safe-client \
--with-named-thread-libs=-lpthread

No Irix 6.5.11 com Irix C nativo e compiladores C++ ver. 7.3.1.2, o seguinte irá funcionar

CC=cc CXX=CC CFLAGS='-O3 -n32 -TARG:platform=IP22 -I/usr/local/include \
-L/usr/local/lib' CXXFLAGS='-O3 -n32 -TARG:platform=IP22 \
-I/usr/local/include -L/usr/local/lib' ./configure \
--prefix=/usr/local/mysql --with-innodb --with-berkeley-db \
--with-libwrap=/usr/local \
--with-named-curses-libs=/usr/local/lib/libncurses.a

Notas SCO

A versão atual foi testado somente nos sistemas sco3.2v5.0.4 e sco3.2v5.0.5. A versãoo para o sco 3.2v4.2 também tem tido muito progresso.

Até o momento o compilador recomendado no OpenServer é o gcc 2.95.2. Com isto você deve estar apto a compilar o MariaDB apenas com:

CC=gcc CXX=gcc ./configure ... (opções)
  1. Para o OpenServer 5.0.X você precisa usar gcc-2.95.2p1 ou mais novo da Skunkware. http://www.SCO.com/skunkware/ e ecolher o pacote OpenServer browser ou por ftp em ftp to ftp2.SCO.com no diretório pub/skunkware/osr5/devtools/gcc.
  2. Você precisa do GCC versão 2.5.x para este produto e do sistema de desenvolvimento. Eles são necessários nesta versão do SCO Unix. Você não pode usar apenas o sistema GCC Dev.
  3. Você deve obter o pacote FSU Pthreads e instalá-lo primeiro. Pode ser obtido em http://www.cs.wustl.edu/~schmidt/ACE_wrappers/FSU-threads.tar.gz. Você pode também obter um pacote precompilado de http://www.mysql.com/Downloads/SCO/FSU-threads-3.5c.tar.gz.
  4. FSU Pthreads pode ser compilado com SCO Unix 4.2 com tcpip, ou OpenServer 3.0 ou OpenDesktop 3.0 (OS 3.0 ODT 3.0), com o Sistema de Desenvolvimento da SCO instalado usando uma boa versão do GCC 2.5.x ODT ou OS 3.0, no qual você necessitará de uma boa versão do GCC 2.5.x. Existem vários problemas sem uma boa versão. Esta versão do produto necessita do sistema de Desenvolvimento SCO Unix. Sem ele, você estará perdendo as bibliotecas e o editor de ligação necessário.
  5. Para construir a FSU Pthreads no seu sistema, faça o seguinte:

    1. Execute ./configure no diretório threads/src e selecione a opção SCO OpenServer. Este comando copia Makefile.SCO5 para Makefile.
    2. Execute make.
    3. Para instalar no diretório padrão /usr/include, use o usuário root, depois mude para o diretório thread/src e execute make install
  6. Lembre de usar o GNU make quando estiver construindo o MariaDB.
  7. Se você não iniciou o mysqld_safe como root, você provavelmente só irá obter, por padrão, os 110 arquivos abertos por processo. O mysqld irá gravar uma nota sobre isto no arquivo log.
  8. Com o SCO 3.2V5.0.5, você deve usar o FSU Pthreads versão 3.5c ou mais nova. Você deve também usar o gcc 2.95.2 ou mais novo.

    O seguinte comando configure deve funcionar:

    shell> ./configure --prefix=/usr/local/mysql --disable-shared
    
  9. Com SCO 3.2V4.2, você deve usar FSU Pthreads versão 3.5c ou mais nova. O seguinte comando configure deve funcionar:

    shell> CFLAGS='-D_XOPEN_XPG4' CXX=gcc CXXFLAGS='-D_XOPEN_XPG4' \
     ./configure \
     --prefix=/usr/local/mysql \
     --with-named-thread-libs='-lgthreads -lsocket -lgen -lgthreads' \
     --with-named-curses-libs='-lcurses'
    

    Você pode ter alguns problemas com alguns arquivos de inclusão. Neste caso, você pode encontrar novos arquivos de inclusão específicos do SCO em http://www.mysql.com/Downloads/SCO/SCO-3.2v4.2-includes.tar.gz. Você deve descompactar este arquivo no diretório include da sua árvore fonte do MariaDB.

Notas de desenvolvimento SCO:

Se você deseja instalar o DBI no SCO, você deve editar o Makefile em DBI-xxx e cada subdiretório.

Note que o exemplo abaixo considera o gcc 2.95.2 ou mais novo:

OLD: NEW:
CC = cc CC = gcc CCCDLFLAGS = -KPIC -W1,-Bexport CCCDLFLAGS = -fpic CCDLFLAGS = -wl,-Bexport CCDLFLAGS =
LD = ld LD = gcc -G -fpic LDDLFLAGS = -G -L/usr/local/lib LDDLFLAGS = -L/usr/local/lib LDFLAGS = -belf -L/usr/local/lib LDFLAGS = -L/usr/local/lib LD = ld LD = gcc -G -fpic OPTIMISE = -Od OPTIMISE = -O1
OLD:
CCCFLAGS = -belf -dy -w0 -U M_XENIX -DPERL_SCO5 -I/usr/local/include NEW:
CCFLAGS = -U M_XENIX -DPERL_SCO5 -I/usr/local/include

Isto é porque o carregador dinâmico Perl não irá carregar os módulos DBI se elas foram compiladas com icc ou cc.

Perl trabalha melhor quando compilado com cc.

Notas SCO Unixware Version 7.0

Você deve usar uma versão de MariaDB pelo menos tão recente quando a Versão 3.22.13 e UnixWare 7.1.0 porque esta versão corrige alguns problemas de portabilidade sob o Unixware.

Nós temos compilado o MariaDB com o seguinte comando configure no UnixWare Versão 7.1.x:

CC=cc CXX=CC ./configure --prefix=/usr/local/mysql

Se você deseja usar o gcc, deverá ser usado o gcc 2.95.2 ou mais novo.

CC=gcc CXX=g++ ./configure --prefix=/usr/local/mysql
  1. A SCO fornece Patches do Sistema Operacional em ftp://ftp.sco.com/pub/unixware7 para UnixWare 7.1.1 e 7.1.3 ftp://ftp.sco.com/pub/openunix8 para OpenUNIX 8.0.0
  2. A SCO fornece informação sobre Security Fixes em ftp://ftp.sco.com/pub/security/OpenUNIX para OpenUNIX ftp://ftp.sco.com/pub/security/UnixWare para UnixWare

Notas OS/2

O MariaDB usa poucos arquivos aberto. Por isto, você deve adicionar uma linha parecida com a abaixo em seu arquivo CONFIG.SYS:

SET EMXOPT=-c -n -h1024

Se você não fizer isto, provavelmente vai ter o seguinte erro:

File 'xxxx' not found (Errcode: 24)

Quando usar o MysQL com OS/2 Warp 3, o FixPack 29 ou superior é necessário. Com OS/2 Warp 4, FixPack 4 ou acima é necessário. Isto é uma exigência da biblioteca Pthreads. O MariaDB deve estar instalado em uma partição que suporta nomes longos de arquivos como no HPFS, FAT32, etc.

O script INSTALL.CMD deve ser executado pelo próprio CMD.EXE do OS/2 e opde não funcionar com shells substitutas como o 4OS2.EXE.

O script scripts/mysql-install-db foi renomeado. Agora ele é chamado install.cmd e é um script REXX, que irá atualizar as configurações padrões de segurança do MariaDB e criar os ícones na WorkPlace Shell para o MariaDB.

Suporte a módulos dinâmicos é compilado mas não totalmente testado. Módulos dinâmicos devem ser compilados usando a biblioteca run-time Pthreads.

gcc -Zdll -Zmt -Zcrtdll=pthrdrtl -I../include -I../regex -I.. \
 -o example udf_example.cc -L../lib -lmysqlclient udf_example.def mv example.dll example.udf

Nota: Devido a limitações no OS/2, o nome do módulo UDF não deve esceder 8 caracteres. Módulos são armazenados no diretório /mysql2/udf; o script safe-mysqld.cmd irá colocar este diretório na variável de ambiente BEGINLIBPATH. Quando usando módulos UDF, extensões específicas são ignoradas --- consuidera-se que seja .udf. Por exemplo, no Unix, o módulo compartilhado deve ser nomeado example.so e você deve carregar uma função dele desta forma:

mysql> CREATE FUNCTION metaphon RETURNS STRING SONAME 'example.so';

No OS/2, o módulo deve ter o nome de example.udf, mas você não deve especificar a extensão do módulo:

mysql> CREATE FUNCTION metaphon RETURNS STRING SONAME 'example';

Notas Novell NetWare

Portar o MariaDB para NetWare foi um grande esforço da Novell. Os clientes da Novell estarão satisfeitos ao notarem que o NetWare 6.5 virá com os binários do MariaDB, completa com uma licença de uso comercial automatica para todos os servidores executando esta versão do NetWare.

See 'Instalando o MariaDB no NetWare'.

MySQL para NetWare é compilado usando um combinação do Metrowerks CodeWarrior for NetWare e uma versão especial de compilação cruzada do GNU autotools. Verifique esta seção no futuro para mais informações sobre construção e otimização do MariaDB para NetWare.

Notas BeOS

Nós já falamos com alguns desenvolvedores BeOS que disseram que o MariaDB está 80% portado para o BeOS, mas nós não sabemos qual a situação no momento.

Comentários de Instalação do Perl

Instalando Perl no Unix
Instalaando ActiveState Perl no Windows
Problemas Usando a Interface Perl DBI/DBD

Instalando Perl no Unix

O suporte Perl para o MariaDB é fornecido pela interface cliente DBI/DBD. Leia Seção 12.5, 'API Perl do MariaDB'. O código do cliente Perl DBD/DBI exige Perl Versão 5.004 ou posterior. A interface não funcionará se você tiver uma versão mais do Perl.

O suporte MariaDB Perl também exige que você tenha instalado o suporte a programação do cliente MySQL. Se você instalou o MariaDB a partir de arquivos RPM, os programas cliente estão no cliente RPM, mas o suporte a programação do cliente está no RPM de desenvolvimento. Certifique de se instalar este RPM posteriormente.

Na Versão 3.22.8, o suporte Perl é distribuído separadamente do dsitribuição principal do MariaDB. Se você quiser instalar o suporte Perl, os arquivos que você precisrá pode ser obtidos em http://www.mysql.com/downloads/api-dbi.html.

As distribuições Perl são fornecidas como arquios tar compactados e são chamados MODULE-VERSION.tar.gz, onde MODULE é o nome do modulo e VERSION é o número da versão. Você deve conseguir as distribuições Data-Dumper, DBI, e DBD-mysql e instalá-las nesta ordem. O procedimento de instalação é mostrado aqui. O exemplo mostrado é para o módulo Data-Dumper, mas o procedimento é o mesmo para todas as distribuições:

  1. Descompacte as distribuições no diretório atual:

    shell> gunzip < Data-Dumper-VERSION.tar.gz | tar xvf -
    

    Este comando cria um diretório chamado Data-Dumper-VERSION.

  2. Entre no diretório principal da distribuição descompactada:

    shell> cd Data-Dumper-VERSION
    
  3. Contrua a dsitribuição e compile tudo:

    shell> perl Makefile.PL
    shell> make
    shell> make test
    shell> make install
    

O comando make test é importante porque verifica que o módulo está funcionando. Note que ao executar este comando durante a instalação do DBD-mysql para exercitar o código da interface, o servidor MariaDB deve estar em execução ou teste irá falhar.

É uma boa idéia reconstruir e reinstalar a distribuição DBD-mysql mesmo se você instalar uma nova distribuição do MariaDB, particularmente se você notar simntomas como se todos os seus scripts DBI realizarem dump core depois de você atualizar o MariaDB.

Se você não tem o direito para instalar os módulos Perl no diretório de sistema ou se você quiser instalar módulos Perl locais, a seguinte referência pode ajudá-lo:

http://servers.digitaldaze.com/extensions/perl/modules.html#modules

Procure sob o título Installing New Modules that Require Locally Installed Modules.

Instalaando ActiveState Perl no Windows

Para instalar o módulo DBD do MariaDB com ActiveState Perl no Windows, você deve fazer o seguinte:

O acima deve funcionar pelo menos com o ActiveState Perl Versão 5.6.

Se você não puder fazer o mostrado acima funcionar, você deve instalar o driver MyODBC e conectar ao servidor MariaDB através do ODBC:

use DBI;
$dbh= DBI->connect('DBI:ODBC:$dsn',$user,$password) ||
 die 'Got error $DBI::errstr when connecting to $dsn\n';

Problemas Usando a Interface Perl DBI/DBD

Se Perl informar que não pode encontrar o módulo ../mysql/mysql.so, então o problema mais provável é que o Perl não pode localizar a biblioteca compartilhada libmysqlclient.so.

Você pode corrigir isto por qualquer um dos seguintes métodos:

Se voce receber os seguintes erros de DBD-mysql, você provavelmente está usando gcc (ou usando um binário antigo compilado com gcc):

/usr/bin/perl: can't resolve symbol '__moddi3'
/usr/bin/perl: can't resolve symbol '__divdi3'

Adicione -L/usr/lib/gcc-lib/... -lgcc ao comando de ligação quando a biblioteca mysql.so estiver construída (verifique a saída de make para mysql.so quando você compilar o cliente Perl). A opção -L deve especificar o caminho do diretório onde libgcc.a está localizada no seu sistema.

Outra causa deste problema pode ser que Perl e o MariaDB não são compilados com gcc. Neste caso, você pode resolver o problema compilando ambos com gcc.

Se você receber o seguinte erro de DBD-mysql quando executar o teste:

t/00base............install_driver(mysql) failed:
Can't load '../blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql:
../blib/arch/auto/DBD/mysql/mysql.so: undefined symbol:
uncompress at /usr/lib/perl5/5.00503/i586-linux/DynaLoader.pm line 169.

significa que você precisa adicionar a biblioteca compactada, -lz, a sua linha de ligação. Isto pode ser feito com a seguinte alteração no arquivo lib/DBD/mysql/Install.pm:

$sysliblist .= ' -lm';

Altere esta linha para:

$sysliblist .= ' -lm -lz';

Depois disto, você deve executar 'make realclean' e proceder com o instalação desde o início.

Se você quiser usar o módulo Perl em um sistema que não suporta ligação dinâmica (como SCO) você pode gerar uma versão estática do Perl que inclui DBI e DBD-mysql. O modo que isto funciona é que você gera uma versão do Perl com o çodigo DBI ligado e instalado no topo do seu Perl atual. Entao você o utiliza para construir uma versão do Perl que adicionalmente tem o código DBD ligado em si, e instale-o.

No SCO, você deve ter as seguintes variáveis de ambiente configuradas:

shell> LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/usr/progressive/lib
ou shell> LD_LIBRARY_PATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:\
/usr/progressive/lib:/usr/skunk/lib
shell> LIBPATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:\
/usr/progressive/lib:/usr/skunk/lib
shell> MANPATH=scohelp:/usr/man:/usr/local1/man:/usr/local/man:\
/usr/skunk/man:

Primeiro crie um Perl que inclui um módulo DBI ligado estaticamente executando estes comandos no diretório onde a sua distribuição DBI está localiada:

shell> perl Makefile.PL -static -config
shell> make
shell> make install
shell> make perl

Então você deve intalar o novo Perl. A saída de make perl indicará o comando make exato que você precisará executar para realizar a instalação. No SCO, isto é make -f Makefile.aperl inst_perl MAP_TARGET=perl.

A seguir use o Perl récem criado para criar outro Perl que também inclui uma DBD::mysql estaticamente ligado rodando estes comandos no diretório onde sua distribuição DBD-mysql está localizada:

shell> perl Makefile.PL -static -config
shell> make
shell> make install
shell> make perl

Finalmente você deve instalar este novo Perl. Novamente, a saída de make perl indica o comando a usar.



Anterior Próximo
Informações Gerais Início Tutorial de Introdução Do MySQL