@Rollex

Как сохранить binlog_expire_logs_seconds?

Здравствуйте. Имею на борту
mysql Ver 8.0.23-14 for Linux on x86_64 (Percona Server (GPL), Release '14', Revision '3558242')

Не могу понять как сохранить измененный параметр, а именно binlog_expire_logs_seconds.
По идее его должна сохранять команда flush logs;
Но после рестарта mysql значение всегда возвращается в дефолтное число.
mysql> show global  variables like 'binlog_expire_logs_seconds';
+----------------------------+---------+
| Variable_name              | Value   |
+----------------------------+---------+
| binlog_expire_logs_seconds | 2592000 |
+----------------------------+---------+
1 row in set (0.02 sec)

mysql> SET GLOBAL binlog_expire_logs_seconds = 432000;
Query OK, 0 rows affected (0.00 sec)

mysql> show global  variables like 'binlog_expire_logs_seconds';
+----------------------------+--------+
| Variable_name              | Value  |
+----------------------------+--------+
| binlog_expire_logs_seconds | 432000 |
+----------------------------+--------+
1 row in set (0.00 sec)

mysql> flush logs;
Query OK, 0 rows affected (0.02 sec)

mysql> exit

# systemctl restart mysql.service
# mysql -uroot -p

mysql> show global  variables like 'binlog_expire_logs_seconds';
+----------------------------+---------+
| Variable_name              | Value   |
+----------------------------+---------+
| binlog_expire_logs_seconds | 2592000 |
+----------------------------+---------+
1 row in set (0.01 sec)
  • Вопрос задан
  • 445 просмотров
Решения вопроса 1
dyuriev
@dyuriev
A posteriori
Если глобальную переменную надо изменить без рестарта и до рестарт сервера, то
SET GLOBAL variable = value; (что вы и делаете)

Если глобальная переменная должна принимать значение отличное от дефолтного при старте сервера, то ползем в конфиги mysql (местоположения отличаются от версии mysql/percona/mariadb и дистриба)

а вообще грепом по каталогу с конфигами mysql пройдитесь (убедитесь, что каталог существует, иногда просто в /etc/my.cnf все конфиги), вангую что там кто-то (тот же мейнтейлер пакета) прописал значение отличное от дефолтного
grep 432000 -r /etc/mysql/

PS: FLUSH LOGS; тут вообще не понятно каким делом приплели

UPD
я невнимательно прочитал
вы хотите установить 432000, а после рестарта сбрасывается на дефолтное 2592000, я почему то воспринял информацию с точностью наоборот,
Все просто - значение в конфигах mysql прописать надо
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы