A opção “wait_timeout” do MySQL não salva

2

O MySQL está atualmente configurado para um wait_timeout de 28800 em nosso servidor, o que eu entendo ser o padrão. Eu tenho tentado mudar isso para 60, como recomendado por um consultor, mas as mudanças não parecem demorar muito tempo. Aqui está o que eu tentei enquanto logado no Linux como root e MySQL como usuário do banco de dados:

1) Efetuando login no MySQL e:

show variables like '%wait_timeout%';
set wait_timeout=60;

2) Editando o arquivo my.cnf em / etc e adicionando a seguinte linha ao [mysqld] e [mysqld_safe]:

wait_timeout=60

Quando eu tento # 1 e escolho mostrar a variável wait_timeout logo depois, ele aparece corretamente como 60. No entanto, se eu esperar um minuto ou dois, ele volta a 28800 novamente. Quando eu tento # 2, a opção parece não demorar, mesmo depois de reiniciar o Apache e o MySQL.

O my.cnf parece ser a única versão do arquivo que eu posso encontrar.

Eu tentei o seguinte, mas nenhum argumento mostra:

mysql --print-defaults

Ao reiniciar o Apache, eu tenho usado:

/usr/sbin/apachectl graceful

Ao reiniciar o MySQL, eu tenho usado:

/etc/init.d/mysqld restart

Alguma ideia? : - (

    
por MattB 05.11.2010 / 14:00

3 respostas

6

Eu tenho medo que você tenha encontrado uma das várias armadilhas do MySQL. Veja este relatório de bug .

Se eu entendi tudo corretamente, o cliente de linha de comando do MySQL faz com que o mysqld use interactive_timeout em vez de wait_timeout .

O que a consulta a seguir retorna para você?

SELECT @@global.wait_timeout, @@session.wait_timeout;

    
por 05.11.2010 / 15:59
0

O Apache não está envolvido com este processo, então você pode pular qualquer coisa que lide com isso.

Quanto ao MySQL, você já tentou ver se existem outros arquivos my.cnf que podem estar substituindo o arquivo base? Além disso, em vez de reiniciar, na verdade, desligue o servidor MySql e, em seguida, inicie-o. Pode ser que você tenha um segmento ou dois que permaneça aberto fazendo com que o valor seja revertido.

    
por 05.11.2010 / 14:47
0

1. Edite o my.cnf (o arquivo de configuração do MySQL).

Ubuntu 16.04

 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

Debian

 sudo vi /etc/mysql/my.cnf

Centos

 sudo vi /etc/my.cnf

2. Localize a configuração de tempo limite e ajuste-a para adequar-se ao seu servidor.

[mysqld]
wait_timeout = 31536000
interactive_timeout = 31536000

3. Salve as alterações e saia do editor.

4. Reinicie o MySQL para aplicar as mudanças da seguinte forma:

sudo /etc/init.d/mysql restart
    
por 14.03.2017 / 11:32

Tags