From 254c699347896f1faa49e1254d3fa31ae22cafd8 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 15 Feb 2024 16:20:39 -0500 Subject: mariadb scripts --- mariadb/drop-all-mariadb-databases | 65 ++++++++++++++++++++++++++++++++++++++ mariadb/mariadb-list-databases | 12 +++++++ mariadb/mariadb-show-users | 13 ++++++++ 3 files changed, 90 insertions(+) create mode 100755 mariadb/drop-all-mariadb-databases create mode 100755 mariadb/mariadb-list-databases create mode 100755 mariadb/mariadb-show-users diff --git a/mariadb/drop-all-mariadb-databases b/mariadb/drop-all-mariadb-databases new file mode 100755 index 0000000..71d83fe --- /dev/null +++ b/mariadb/drop-all-mariadb-databases @@ -0,0 +1,65 @@ +#!/bin/bash +set -e +set -o pipefail + +never_drop=( + information_schema + mysql + performance_schema + sys +) + +never_drop() +{ + grep -vF ${never_drop[@]/#/ -e } +} + +choose_drops() +{ + mariadb -ss -b <<< 'show databases' | + never_drop +} + +execute_drops() +{ + while read dbname + do + t=\` + printf 'drop database %s ;\n' \ + "$t${dbname//$t/$t$t}$t" + done | + if [ "$REALLY_DROP_ALL_MARIADB_DATABASES" ] + then + mariadb -v + else + cat + fi +} + +warn() +{ + printf 'Warning: %s\n' "$*" >&2 +} + +perr() +{ + printf 'Error: %s: %s\n' "$0" "$*" >&2 +} + +case "$#$1" in + 1--drop-all-databases ) + shift + REALLY_DROP_ALL_MARIADB_DATABASES=y + ;; + 0 ) + warn 'No databases will be dropped' + warn 'To execute the SQL, supply' \ + 'command-line argument: --drop-all-databases' + ;; + * ) + perr "Unexpected argument list: ${@@Q}" + exit 1 + ;; +esac + +choose_drops | execute_drops diff --git a/mariadb/mariadb-list-databases b/mariadb/mariadb-list-databases new file mode 100755 index 0000000..527ec90 --- /dev/null +++ b/mariadb/mariadb-list-databases @@ -0,0 +1,12 @@ +#!/bin/bash +mariadb -t "$@" <<. +select + @@hostname +, @@server_id +, schema_name +as + 'database' +from + information_schema.schemata +; +. diff --git a/mariadb/mariadb-show-users b/mariadb/mariadb-show-users new file mode 100755 index 0000000..1cbd074 --- /dev/null +++ b/mariadb/mariadb-show-users @@ -0,0 +1,13 @@ +#!/bin/bash +mariadb <<. +select + concat (host, '@', user) + as + user +, json_detailed (priv) + as + priv +from + mysql.global_priv +\G +. -- cgit v1.2.3