Ambiente Varibales no arquivo de configuração do MySQL?

3

É possível usar variáveis de ambiente em um arquivo Apache .conf , mas e o MySQL, existe uma maneira usá-los no arquivo de configuração do MySQL ( my.ini / my.cfg )?

A coisa mais próxima que eu encontrei foi uma página de manual do MySQL que menciona algumas variáveis, mas não indica como usá-las ou se são variáveis do sistema ou variáveis internas.

No meu caso, eu preciso de uma maneira de especificar que os logs devem ser armazenados em um subdiretório do diretório temporário do sistema, mas não consigo descobrir como indicar isso. Por exemplo:

log-error="${temp}/MySQL_Logs/error.log"
innodb_log_group_home_dir="%temp%/PS_Logs/Logs/MySQL/"
?
    
por Synetech 08.02.2013 / 17:36

2 respostas

3

Você não pode fazer isso no arquivo de configuração, mas pode modificar o comando start para defini-los dessa maneira.

por exemplo:

Defina LOG_DIR="seu diretório de log" no console.

Em seguida, modifique o script de início para incluir a opção de erro de registro.

mysqld --log-error=$LOG_DIR/error_log.log
    
por 08.02.2013 / 18:11
0

Provavelmente não é a solução mais elegante, mas talvez o arquivo de configuração estática possa ser substituído por conteúdo dinâmico:

Você pode colocar um FIFO no caminho do arquivo de log. Antes de iniciar o MySQL, você teria que iniciar um mini daemon que escreve para aquele FIFO em um loop infinito. As condições da corrida não devem ser um problema aqui.

O daemon escreveria dois blocos de dados para o FIFO, primeiro uma linha falsa como     # environment aware config file following para abrir o FIFO. Assim que essa primeira gravação for retornada, ela obterá o PID do processo de leitura (por exemplo, via fusor), obterá as variáveis que ocorrem no arquivo de / proc / $ {PID} / environ, criar comandos para, e. sed para substituir as referências e escrever a saída sed para o FIFO.

    
por 08.02.2013 / 19:47