MariaDB backup. Mysqldump cannot connect "permission denied"

Support intro

Or for longer, use three backticks above and below the code snippet:

longer
example
here

Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can :heart:

Nextcloud version (eg, 18.0.2): 18.0.4
Operating system and version: Ubuntu 18.04
Nginx version: 1.14.0
PHP version: 7.2

The issue you are facing:
I’m trying to backup my nextcloud’s DB:

> mysqldump --single-transaction -h localhost -u root -p DBname > ./nxc-lv_20200726.bak
> Enter password:
> mysqldump: Got error: 2002: "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13 "Permission denied")" when trying to connect
Apparmor log
[12771.308328] audit: type=1400 audit(1595776970.828:185): apparmor="ALLOWED" operation="open" profile="/usr/bin/mysqldump" name="/etc/mysql/mariadb.cnf" pid=4720 comm="mysqldump" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[12771.322201] audit: type=1400 audit(1595776970.840:186): apparmor="ALLOWED" operation="open" profile="/usr/bin/mysqldump" name="/etc/mysql/conf.d/" pid=4720 comm="mysqldump" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[12771.322328] audit: type=1400 audit(1595776970.840:187): apparmor="ALLOWED" operation="open" profile="/usr/bin/mysqldump" name="/etc/mysql/conf.d/mysql.cnf" pid=4720 comm="mysqldump" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[12771.329094] audit: type=1400 audit(1595776970.848:188): apparmor="ALLOWED" operation="open" profile="/usr/bin/mysqldump" name="/etc/mysql/conf.d/mysqldump.cnf" pid=4720 comm="mysqldump" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[12771.329161] audit: type=1400 audit(1595776970.848:189): apparmor="ALLOWED" operation="open" profile="/usr/bin/mysqldump" name="/etc/mysql/mariadb.conf.d/" pid=4720 comm="mysqldump" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[12771.329234] audit: type=1400 audit(1595776970.848:190): apparmor="ALLOWED" operation="open" profile="/usr/bin/mysqldump" name="/etc/mysql/mariadb.conf.d/50-client.cnf" pid=4720 comm="mysqldump" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[12771.335312] audit: type=1400 audit(1595776970.852:191): apparmor="ALLOWED" operation="open" profile="/usr/bin/mysqldump" name="/etc/mysql/mariadb.conf.d/50-mysql-clients.cnf" pid=4720 comm="mysqldump" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[12771.343407] audit: type=1400 audit(1595776970.860:192): apparmor="ALLOWED" operation="open" profile="/usr/bin/mysqldump" name="/etc/mysql/mariadb.conf.d/50-mysqld_safe.cnf" pid=4720 comm="mysqldump" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[12771.359624] audit: type=1400 audit(1595776970.876:193): apparmor="ALLOWED" operation="open" profile="/usr/bin/mysqldump" name="/etc/mysql/mariadb.conf.d/50-server.cnf" pid=4720 comm="mysqldump" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[12771.373084] audit: type=1400 audit(1595776970.892:194): apparmor="ALLOWED" operation="open" profile="/usr/bin/mysqldump" name="/usr/share/mysql/charsets/Index.xml" pid=4720 comm="mysqldump" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
ls -l /var/run/mysqld/
total 4
-rw-rw---- 1 mysql mysql 5 июл 26 16:15 mysqld.pid
srwxrwxrwx 1 mysql mysql 0 июл 26 16:15 mysqld.sock

DB is works well. I can login with ‘mysql -u root -p’ and via phpmyadmin. But it doesn’t work with mysqldump.
Please help.

Does root have the permission to access localhost?

Linux root or mysql user? How I may check it?

I made one-time backup with mariabackup. But NC logs same erros when trying to use mysqldump.

Test login to MariaDB first:

mysql -u root -p

Sure, it is.

To be more precise:
mysql --host localhost -u root -p
Does this work?