Discussion:
[gentoo-user] mariadb confused about expire_logs_days
(too old to reply)
John Blinka
6 years ago
Permalink
.

Hello everyone,

I upgraded to mariadb-10.2.22-r1 from mariadb-10.1.38-r1 about 3 weeks
ago. Just today I've discovered that the log files
(/var/lib/mysql/mariadb-bin.XXXXXX) have been accumulating since that
time. I have no use for all of these log files, so years ago I set
expire_logs_files = 1 in my.cnf to keep just the most recent one.
This has worked well until the upgrade. This upgrade also introduced
a new way of expressing the /etc/mysql/my.cnf file. It now follows
Gentoo practice of pointing to a directory (/etc/mysql/mariadb.d)
which contains multiple files that are concatenated to produce the
my.cnf file that is handed to mariadb. One of these files
(/etc/mysql/mariadb.d/logs) contains
[mysql]
expire_logs_days = 1

Clearly, this is being ignored, since I now have 3 weeks of
accumulated log files instead of just the latest one. When I
attempted to log into the mariadb server to examine the values of the
global variables, the login failed with the message

mysql: unknown variable 'expire_logs_days=1'

I then commented out the line "expire_logs_days = 1" in the
file /etc/mysql/mariadb.d/logs. This allowed me to log into the
mariadb server without the error message to issue the SHOW VARIABLES;
command, which revealed that expire_logs_days was set to the 0
default.

So clearly mariadb seems to think that expire_logs_days is still a
legitimate variable. It looks like something is interpreting the line
"expire_logs_days = 1" as just a variable name instead of name =
value.

Anybody else experience this? Any suggested solutions? I haven't
found anything on Google or bugs.gentoo.org.

John Blinka
Stefan Schmiedl
6 years ago
Permalink
Hi John,
Post by John Blinka
(/etc/mysql/mariadb.d/logs) contains
[mysql]
expire_logs_days = 1
Clearly, this is being ignored, since I now have 3 weeks of
It is not ignored, it is used by mysql as indicated in the
section label. But since mysql does not know this option it complains
as you saw.

The real bug is probably that [mysql] should be [mysqld] instead.

$ mysqld --verbose --help | grep expire
--expire-logs-days=#
expire_logs_days days; possible purges happen at startup
expire-logs-days 0

Good luck,
s.

Loading...