## # # MySQL and MariaDB socket-file/pid-file folder issues – how to fix # ## # ---------- # There are 2 possibilities to force creating a folder on ech boot. # ---------- # ---------- # # 1.) Add 'ExecStartPre' directive to systemd service file: # # ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld # # ---------- MYSQL_USER=mysql SOCKET_DIR="/var/run/mysqld" MYSQL_SERVICE_FILE="/root/mysql.service" perl -i -n -p -e "s&^(PermissionsStartOnly=.*)&\1\n\nExecStartPre=/usr/bin/install -m 755 -o $MYSQL_USER -g root -d $SOCKET_DIR&" $MYSQL_SERVICE_FILE # ---------- # # 2.) Create file /etc/tmpfiles.d/mysql.conf file with content: # # # systemd tmpfile settings for mysql or mariadb # d /var/run/mysqld 0755 mysql mysql - # # see also: # https://www.ryadel.com/en/linux-mysql-mariadb-pid-file-folder-fix/ # # ---------- # Force systemd to create such folder on each startup. We can easily do that following the steps below: # # - Create a new /etc/tmpfiles.d/mysql.conf file with content: # # # systemd tmpfile settings for mysql or mariadb # d /var/run/mysqld 0755 mysql mysql - # cat < /etc/tmpfiles.d/mysql.conf # systemd tmpfile settings for mysql or mariadb d /var/run/mysqld 0755 mysql mysql - EOF