Eu tenho que configurar um servidor MySQL para atuar como um mestre de replicação.
Modifiquei my.cnf para ativar logs binários, mas agora, para recarregar a configuração, tenho que recarregar o serviço /etc/init.d/mysqld restart
. O problema é que o servidor recebe várias consultas por segundo e não quero perder todos os dados que possam chegar enquanto isso.
Existe uma maneira de recarregar o arquivo de configuração my.cnf sem reiniciar o serviço?
mysql
replication
David Espart
fonte
fonte
/etc/init.d/restart
reiniciaria o host inteiro. Você provavelmente está pensando em/etc/init.d/mysqld restart
Respostas:
MySQL Especificamente:
As opções no my.cnf são variáveis do sistema . Essas variáveis são dinâmicas (podem ser alteradas em tempo de execução) ou não dinâmicas. Os que são dinâmicos, podem ser alterados no tempo de execução com a sintaxe da variável SET. Você pode ver as variáveis com
SHOW VARIABLES;
. Mas, de acordo com este link no manual , a opção de log binário não é dinâmica. Então parece que você precisa reiniciar. Você pode querer esperar que alguém que conhece o mysql um pouco melhor que eu confirme isso, no entanto.Daemons em geral:
no Linux, o /etc/init.d/ contém scripts que iniciam e interrompem daemons (serviços). Como esses são scripts, você pode visualizá-los com um editor de texto. Muitos desses scripts terão um argumento de recarregamento. Olhando para o meu script mysql, recarregar como argumento usa o comando mysqladmin. Portanto, o manual do mysqladmin sob reload diz:
Assim, parece que, em geral, não se trata de alterações de configuração, mas de privilégios (talvez o comando equivalente de privilégios de liberação?).
fonte
Eu estive procurando uma solução para isso, mas não fiquei satisfeito com a ajuda limitada que encontrei. Um sujeito ofereceu uma morte - HUP .. não funcionou para mim ..
o que eu fiz foi pausar as instâncias do apache .. e depois continuá-las mais tarde .. funcionou como um encanto em um servidor onde eu tenho uma média de 25 solicitações ativas por segundo.
com sudo (obviamente) pkill -STOP httpd && /etc/init.d/mysqld restart && pkill -CONT httpd
é claro que o nome do processo apache e / ou os scripts de reinicialização do mysql podem variar dos meus, mas você entende a ideia!
fonte