Hi Alex,
MariaDB / MySQL maintainer here.

Historically, when the 'mariadb-admin' / 'mysql-admin' was used, it
first needed to be configured, so the 'mariadb-admin' / 'mysql-admin'
would have the necessary login credentials available.

That changed starting MariaDB 10.4, with the unix socket
authentication, as described in the logrotate file:
  
https://github.com/MariaDB/server/blob/main/support-files/mariadb.logrotate.sh#L43
which we slightly patch for Fedora:
  
https://src.fedoraproject.org/rpms/mariadb10.11/blob/rawhide/f/mariadb-logrotate.patch

The unix socket authentication in MariaDB was designed in such a way
that it automatically allows login from the system 'root user and the
account owning the DB files - usually 'mysql' user. The logic behind
being that both those accounts can tamper with the DB files in any
way, so there's no point in denying them the access to the DB
directly.
  https://mariadb.com/kb/en/authentication-plugin-unix-socket/
That said, it should work seamlessly out of the box.

I tried to disable the unix socket authentication, which led to this output:
 | # mariadb-admin --local flush-error-log flush-engine-log
flush-general-log flush-slow-log
 | mariadb-admin: connect to server at 'localhost' failed
 | error: 'Plugin 'unix_socket' is not loaded'

So more likely, you configured a specific protocol to be used for the
client as the preferred or only variant available.
That can be configured for specific types of clients and tools, as can
be seen in the '/etc/my.cnf.d/mysql-clients.cnf' configuration file.
  
https://github.com/MariaDB/server/blob/main/support-files/rpm/mysql-clients.cnf

When you configure e.g.
 | [mysqladmin]
 | user=mysql
 | protocol=tcp

Then even when the server and the client use unix_socket naturally,
you'll get this result from the mariadb-admin:
 | # mariadb-admin --local flush-error-log flush-engine-log
flush-general-log flush-slow-log
 | mariadb-admin: connect to server at 'localhost' failed
 | error: 'Access denied for user 'mysql'@'localhost''

Please check all of your configuration files for configuration
specific for the [mariadb-admin] and [mysql-admin] tools.

Michal

--

Michal Schorm
Software Engineer
Databases Team
Red Hat

--

On Sat, Apr 12, 2025 at 4:11 AM Alex <mysqlstud...@gmail.com> wrote:
>
> Hi,
> I'm using fedora40 with mariadb and noticed my logs are being rotated, but 
> not flushed to start logging to the new file. This is the bottom of 
> /etc/logrotate.d/mariadb:
>
>   # After each rotation, run this custom script to flush the logs. Note that
>   # this assumes that the mariadb-admin command has database access, which it
>   # has thanks to the default use of Unix socket authentication for the 
> 'mysql'
>   # (or root on Debian) account used everywhere since MariaDB 10.4.
>   postrotate
>     if test -x /usr/bin/mariadb-admin
>     then
>       /usr/bin/mariadb-admin $EXTRAPARAM --local flush-error-log \
>         flush-engine-log flush-general-log flush-slow-log
>     fi
>   endscript
>
> However, when I run that command manually as root or the mysql user, it fails 
> with access denied.
>
> $ /usr/bin/mariadb-admin --local flush-error-log flush-engine-log 
> flush-general-log flush-slow-log
> /usr/bin/mariadb-admin: connect to server at 'localhost' failed
> error: 'Access denied for user 'mysql'@'localhost' (using password: NO)'
>
> Where is access supposed to be provided securely for this? Do you know what 
> privileges I should enable to allow the mysql user to flush the logs without 
> privileges?
>
>
>
>
>
>
>
>
>
>
>
> --
> _______________________________________________
> users mailing list -- users@lists.fedoraproject.org
> To unsubscribe send an email to users-le...@lists.fedoraproject.org
> Fedora Code of Conduct: 
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: 
> https://lists.fedoraproject.org/archives/list/users@lists.fedoraproject.org
> Do not reply to spam, report it: 
> https://pagure.io/fedora-infrastructure/new_issue

-- 
_______________________________________________
users mailing list -- users@lists.fedoraproject.org
To unsubscribe send an email to users-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/users@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to