openrat-cms

OpenRat Content Management System
git clone http://git.code.weiherhei.de/openrat-cms.git
Log | Files | Refs | README

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:
Aconfig/create-database-config.sh | 64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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