On 02.03.2020 11:26, Burkhard Schultheis wrote:
> Plattform: Mariadb 10.2.31 auf SLES 12 SP4.
> Problem: Seit dem Update auf 10.2.31 hat das Verzeichnis mysql nur noch
> Rechte für den Eigentümer, also 700.
Das ist kein Problem, sondern Absicht. Niemand außer dem 'mysql' user
(vulgo: dem 'mysqld' Prozeß) soll Zugriff auf das Datadir haben.
> Und damit funktioniert unser
> Nagios-Check für die Replication nicht mehr. Wenn ich die Rechte auf 755
> ändere, geht der Check wieder. Ansonsten kommt die Fehlermeldung "Connect
> failed: Can't connect to local MySQL server through socket
> '/var/lib/mysql/mysql.sock' (13 "Permission denied")". /var/lib/mysql ist
> ein Link auf /data/mysql
Das ist das Problem. Der UNIX Socket darf _nicht_ im Datadir liegen.
Normalerweise *ist* /var/lib/mysql das Datadir und der Socket liegt in
/var/run/mysql (oder /tmp). Keine Ahnung, ob das bei SLES generell
verbosselt ist, oder wer das kaputt gemacht hat.
> Die Datenbank läuft auf zwei Servern, die vollkommen gleich sein sollten,
> aber zumindest in einem Detail nun unterschiedlich sind: Wenn ich die Rechte
> an /data/mysql auf 750 ändere, bleiben sie auf dem einen zumindest bis zum
> Reboot erhalten, auf dem anderen werden immer wieder die Rechte auf 750
> zurückgesetzt.
> Meine Fragen an euch:
>
> 1. Weiß jemand, warum die Rechte an mysql eingeschränkt wurden?
Security.
> 2. Was kann auf dem zweiten Server dazu führen, dass die Rechte immer wieder
> auf 700 gesetzt werden?
Das Init-System. Bei dir vermutlich systemd.
> 3. Wie kann ich das Zurücksetzen der Rechte beim Booten verhindern?
Mach es nicht. Ändere die my.cnf, daß der Socket nicht mehr im Datadir liegt.