commit 45d227eed3516521be6fdd3f73d942b9186999ce
parent b9b63d4f94e27065a3319db58952d93b056cd6ca
Author: root <root@h1657876.stratoserver.net>
Date: Sat, 13 Apr 2019 21:32:01 +0200
Schema nur löschen, wenn keine Tabellen enthalten sind.
Diffstat:
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/update_database b/update_database
@@ -36,11 +36,11 @@ function sql_admin {
sql=$1
#echo "SQL: $sql"
#return
- mysql -u $MYSQL_ADMIN_USER -p$MYSQL_ADMIN_PASSWORD -se "$sql" $MYSQL_DATABASE
+ mysql -u root -pss19a -se "$sql" $MYSQL_DATABASE
}
-sql "select domain,CONCAT('db_',LEFT(REPLACE(domain,'.','_'),60)) FROM domain WHERE active=1"|while read domain dbname; do
+sql "select domain,CONCAT('db_',LEFT(REPLACE(domain,'.','_'),60)) FROM domain WHERE active=1 AND x_db=1"|while read domain dbname; do
# Den Benutzer zur Domain zu finden. Es ist der (hoffentlich einzige) <Benutzername>@webmaster..., der für die Domain berechtigt ist.
db=`sql_admin "SELECT schema_name from information_schema.schemata where schema_name='$dbname'"`
@@ -95,7 +95,7 @@ sql_admin "SELECT schema_name from information_schema.schemata where schema_name
#echo "Prüfe $dbname auf Notwendigkeit"
# Existiert die Domain noch in der Verwaltung?
- exist=`sql "SELECT domain FROM domain where CONCAT('db_',LEFT(REPLACE(domain,'.','_'),60))='$dbname'"`
+ exist=`sql "SELECT domain FROM domain where CONCAT('db_',LEFT(REPLACE(domain,'.','_'),60))='$dbname' AND x_db=1"`
#exist=
if [ ! "$exist" ]; then
@@ -103,18 +103,24 @@ sql_admin "SELECT schema_name from information_schema.schemata where schema_name
echo ""
echo "Datenbank $dbname wird entfernt, da diese in der Verwaltung nicht mehr existiert"
- sql_admin "select distinct grantee as dbuser FROM information_schema.schema_privileges WHERE grantee regexp '^.?[ur]_.+\$' AND table_schema='$dbname'"|while read dbuser; do
+ tablecount=`sql_admin "SELECT count(*) from information_schema.tables where table_schema='$dbname'"`
+ if [ $tablecount -gt 0 ]; then
+ echo "Datenbank $dbname ist nicht leer und wird nicht geloescht!"
+ else
+ echo "Datenbank $dbname ist leer und wird gelöscht."
- echo "Lösche $dbuser"
- sql_admin "DROP USER $dbuser"
- done
+ sql_admin "select distinct grantee as dbuser FROM information_schema.schema_privileges WHERE grantee regexp '^.?[ur]_.+\$' AND table_schema='$dbname'"|while read dbuser; do
+
+ echo "Lösche $dbuser"
+ sql_admin "DROP USER $dbuser"
+ done
- echo "Lösche Datenbank $dbname"
- sql_admin "DROP DATABASE $dbname"
+ echo "Lösche Datenbank $dbname"
+ sql_admin "DROP DATABASE $dbname"
- sql_admin "FLUSH PRIVILEGES"
-
+ sql_admin "FLUSH PRIVILEGES"
+ fi
fi
done