O modo mais fácil de executar diversos servidores no Unix é compilá-los com diferentes portas TCP/IP e arquivos socket, assim cada um está escutando em diferentes interfaces de rede. Também, compilando em diferentes diretórios bases para instalação, que automaticamente resulta em diferentes localizações de diretórios de dados, arquivos log e arquivos PID para cada um dos seus servidores.
Considere que um servidor existente está configurado para a
porta e arquivo socket padrões. Para configurar um novo
servidor para ter parâmetros operacionais diferentes, use um
comando configure
assim:
shell>./configure --with-tcp-port=port_number \
--with-unix-socket-path=nome_arquivo \
--prefix=/usr/local/mysql-4.0.17
Aqui número_porta
e
nome_arquivo
deve ser diferente que o número
da porta e o caminho do arquivo socket padrões e o valor
--prefix
deve especificar um diretório de
instalação diferente daquele usado pelo servidor existente.
Você pode conferir o socket usado por qualquer servidor MySQL em execução com este comando:
Se você tem um servidor MySQL escutando em uma porta dada, você pode usar o seguinte comando para descobrir quaie parâmetros operacionais ele está usando para diversas variáveis importantes configuráveis, incluíndo o diretório base e o nome do socket:
shell> mysqladmin --host=host_name --port=port_number variables
Com a informação exibida por aquele comando, você pode dizer quais valores de opção não usar ao configurar um servidor adicional.
Note que se você especificar ``localhost
''
como o nome da máquina, mysqladmin
irá por
padrão usar uma conexão sockets Unix em vez de TCP/IP. No
MySQL 4.1 você também pode especificar o protocolo a ser usado
com a opção --protocol={TCP | SOCKET | PIPE |
MEMORY}
.
Não é necessário compilar um novo servidor MySQL apenas para iniciar com uma arquivo socket ou número de porta TCP/IP diferentes. Também é possível especificar estes valores em tempo de execução. Um modo de fazê-lo é usando as opções de linha de comando:
shell> /path/to/mysqld_safe --socket=file_name --port=port_number
Para usar outro diretório de banco de dados para o segundo
servidor, passe uma opção --datadir=caminho
para o mysqld_safe
.
Um outro modo de conseguir este efeito é usar as variáveis de ambiente para configurar o nome do socket e o número da porta:
shell>MYSQL_UNIX_PORT=/tmp/mysqld-new.sock
shell>MYSQL_TCP_PORT=3307
shell>export MYSQL_UNIX_PORT MYSQL_TCP_PORT
shell>scripts/mysql_install_db
shell>bin/mysqld_safe &
Este é um modo rápido para iniciar um segundo servidor para teste. O bom deste método é que a configuração das variáveis de ambiente se aplicarão a qualquer programa cliente que você chame da shell acima. Assim, as conexões para estes clientes serão automaticamente direcionadas para o segundo servidor!
Apêndice F, Variáveis de Ambientes do MySQL inclue uma lista de
outras variáveis de ambiente que você pode usar e que afetam o
mysqld
.
Para a execução automatica do servidor, seu script de inicialização que é executado no tempo de boot deve executar o seguinte comando uma vez para cada servidor com um caminmho apropriado do arquivo de opção para cada comando:
mysqld_safe --defaults-file=path-to-option-file
Cada arquivo de opção deve conter valores específicos para um dados servidor.
No Unix, o script mysqld_multi
é outro modo
de de iniciar vários servidores. See
Secção 4.8.3, “mysqld_multi
, programa para gerenciar múltiplos
servidores MySQL”.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.