From ad5957d796594b34248e76d5404d9e0c7fbc951f Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@freedombone.net>
Date: Sun, 25 Jun 2017 15:02:18 +0100
Subject: [PATCH] Fixing mariadb brokenness

---
 src/freedombone-utils-database | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/src/freedombone-utils-database b/src/freedombone-utils-database
index 6db46f6b3..1569b8ced 100755
--- a/src/freedombone-utils-database
+++ b/src/freedombone-utils-database
@@ -153,24 +153,34 @@ function get_mariadb_password {
     fi
 }
 
+function mariadb_kill_stone_dead {
+    systemctl stop mariadb
+    kill_pid=$(ps aux | grep mysqld_safe | awk -F ' ' '{print $2}' | head -n 1)
+    kill -9 $kill_pid
+    kill_pid=$(ps aux | grep mysqld | awk -F ' ' '{print $2}' | head -n 1)
+    kill -9 $kill_pid
+    kill_pid=$(ps aux | grep mysqld | awk -F ' ' '{print $2}' | head -n 1)
+    kill -9 $kill_pid
+}
+
 function mariadb_fix_authentication {
     # See http://www.pontikis.net/blog/debian-9-stretch-rc3-web-server-setup-php7-mariadb
     # https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin
     remove_watchdog_daemon mariadb
-    systemctl stop mariadb
+    mariadb_kill_stone_dead
     mysqld_safe --skip-grant-tables &
-    output=$(mysql -u root << EOF
+    sleep 5
+    mysql -u root --password="$MARIADB_PASSWORD" << EOF
 use mysql;
-update mysql.user set plugin = '' where User='root'; flush privileges;
-UPDATE user SET Password=PASSWORD('$MARIADB_PASSWORD') where USER='root'; flush privileges;
+update mysql.user set plugin = '' where User='root';
+UPDATE user SET Password=PASSWORD('$MARIADB_PASSWORD') where USER='root';
+flush privileges;
 EOF
-)
-    kill_pid=$(ps aux | grep mysql | awk -F ' ' '{print $2}' | head -n 1)
-    kill -9 $kill_pid
+    mariadb_kill_stone_dead
 
     sed -i 's| --skip-grant-tables||g' /lib/systemd/system/mariadb.service
     systemctl daemon-reload
-    systemctl restart mariadb
+    systemctl start mariadb
     add_watchdog_daemon mariadb
 }
 
-- 
GitLab