commit 002474bb5df638c1e42f7aaa28497390bad3d297
parent 678c7925ae4e940b075c9a11ef2b9cd87bfcd1e2
Author: Jan Dankert <dev@jandankert.de>
Date: Fri, 23 Oct 2020 07:48:04 +0200
New: Helper script for creating a database user in mysql/mariadb.
Diffstat:
1 file changed, 64 insertions(+), 0 deletions(-)
diff --git a/config/create-database-config.sh b/config/create-database-config.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+usage() {
+ echo "Usage: $0 [-r <root-username>] [-p <root password>] [-d <database>] [ -u username ] [ -c password ]" 1>&2;
+ exit 1;
+}
+
+ROOT_USER=root
+ROOT_PASSWORD=
+DATABASE=openrat
+USER=openrat
+PASSWORD=
+
+while getopts "r:p:d:u:c:h" o; do
+ case "${o}" in
+ r)
+ ROOT_USER=${OPTARG}
+ ;;
+ p)
+ ROOT_PASSWORD=${OPTARG}
+ ;;
+ d)
+ DATABASE=${OPTARG}
+ ;;
+ h)
+ usage; exit 1;
+ ;;
+ u)
+ USER=${OPTARG}
+ ;;
+ c)
+ PASSWORD=${OPTARG}
+ ;;
+ *)
+ usage
+ ;;
+ esac
+done
+shift $((OPTIND-1))
+
+if [ -z "${PASSWORD}" ]; then
+ PASSWORD=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32}`
+fi
+
+
+function mysqlcmd {
+ CMD=$1
+ mysql --silent --user=$ROOT_USER --password=$ROOT_PASSWORD --execute="$CMD"
+}
+
+mysqlcmd "CREATE DATABASE $DATABASE;"
+mysqlcmd "CREATE USER '$USER'@'%';"
+mysqlcmd "ALTER USER '$USER'@'%' IDENTIFIED BY '$PASSWORD';"
+mysqlcmd "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER ON $DATABASE.* TO '$USER'@'%';";
+mysqlcmd "FLUSH PRIVILEGES;"
+
+echo "# database configuration for openrat content management system"
+echo "# copy this to config.yml or config-<host>.yml"
+echo "database:"
+echo " db_$DATABASE:"
+echo " dsn : \"mysql:host=localhost; dbname=$DATABASE; charset=utf8\""
+echo " user: \"$USER\""
+echo " password: \"$PASSWORD\""
+echo