A maioria das pessoas executa um único servidor MySQL em uma máquina designada, mas há situações em que a execução de vários servidores é benéfica: você pode testar novas versões do servidor com o servidor de produção em execução. Neste caso, um servidor diferente estará em execução.
O sistema operacional geralmente impõe um limite geral de processo no número de descritores para arquivos abertos. Se o seu sistema tiver dificuldade em aumentar o limite, executar vários servidores é uma solução alternativa (por exemplo, aumentar o limite pode exigir a recompilação do kernel e, se a máquina estiver fora da sua jurisdição, talvez você não consiga fazer isso ainda). Neste cenário, você pode estar executando diversas instâncias do mesmo servidor.
Os serviços de Internet geralmente fornecem aos clientes sua própria instalação do MySQL, o que requer um servidor separado. Nesse caso, você pode executar várias instâncias do mesmo servidor ou de servidores diferentes se clientes diferentes exigirem versões diferentes do MySQL.
É claro que executar vários servidores simultaneamente é mais complicado do que executar apenas um. Se você planeja instalar diversas versões, não poderá instalá-las todas no mesmo local. Quando um servidor está em execução, determinados parâmetros devem ser exclusivos para cada servidor. Alguns desses parâmetros incluem onde o servidor está instalado: o nome do caminho para o diretório de dados, a porta TCP/IP e o nome do caminho do soquete de domínio UNIX e a conta UNIX usada para executar vários servidores (se não estiver executando todos no mesmo servidor de conta). Se você decidir executar vários servidores, deverá manter uma boa descrição dos parâmetros que está usando para não perder o controle de suas execuções.
Configurar e instalar vários servidores
Se você planeja executar versões diferentes do servidor em vez de várias instâncias do mesmo servidor, instale-as em locais diferentes. Se você instalar pacotes de distribuição binários (não RPM), eles serão instalados no nome do diretório que contém o número da versão. Se estiver instalando a partir de uma distribuição fonte, a maneira mais fácil de manter as diferentes distribuições separadas é usar a opção --with-prefix ao executar o configure durante a instalação de cada versão do MySQL. Isto resultará em uma instalação em um diretório separado que pode ser vinculado ao número da versão da distribuição. Por exemplo, você pode configurar um pacote de distribuição do MySQL da seguinte forma, onde version é o número da versão do MySQL:
% ./configure ..with-prefix=/usr/local/mysql-version
A opção with-prefix também determinará o diretório de dados exclusivo do servidor. Você pode adicionar opções para configurar outros valores específicos do servidor, como porta TCP/IP e nome do caminho do soquete (--with-tcp-port e --with-unix-socket).
Se você planeja executar diversas instâncias do mesmo servidor, quaisquer opções específicas do servidor precisarão ser especificadas no tempo de execução.
Processo de inicialização de vários servidores
Iniciar múltiplos servidores é mais complicado do que usar um único servidor porque tanto safe_mysqld quanto mysql.server funcionam bem em um único servidor. O autor recomenda que você estude o safe_mysqld cuidadosamente e o use como base para o processo de inicialização, a menos que você use uma cópia mais granular modificada de acordo com suas necessidades.
Uma questão que deve ser tratada é como especificar opções no arquivo de opções. Com vários servidores, você não pode usar /etc/my.cnf para configurações que mudam com base no servidor total, use apenas este arquivo para configurações que são iguais para todos os servidores. Se cada servidor tiver um local de diretório de dados diferente, você poderá especificar parâmetros específicos do servidor no arquivo my.cnf para o diretório de dados de cada servidor. Em outras palavras, use /etc/my.cnf para configurações usadas por todos os servidores e DATA DIR/my.cnf para configurações específicas do servidor, onde o DATADIR muda para cada servidor.
Outra maneira de especificar opções do servidor é usar - - defa ul ts - file =path_name como a primeira opção na linha de comando para instruir o servidor a ler as opções do arquivo especificado por path_name. Dessa forma, as opções do servidor nesse arquivo podem ser colocadas exclusivamente naquele servidor e então instruir o servidor a ler o arquivo na inicialização. Observe que se esta opção for especificada, nenhum dos arquivos de opções usuais (como /etc/my.cnf) será usado.