@@ -376,7 +376,8 @@ create_db_mysql() {
376376 fi
377377
378378 # Adding database & checking result
379- $sql " CREATE DATABASE $database " > /dev/null 2>&1 ; code=" $? "
379+ $sql " CREATE DATABASE $database CHARACTER SET $encoding " > /dev/null 2>&1
380+ code=" $? "
380381 if [ ' 0' -ne " $code " ]; then
381382 echo " Error: Connect failed"
382383 log_event ' debug' " $E_DBHOST_UNAVAILABLE $V_EVENT "
@@ -405,7 +406,7 @@ create_db_pgsql() {
405406 done
406407
407408 export PGPASSWORD=" $PASSWORD "
408- sql=" psql -h $HOST -U $USER -d $TPL - p $PORT -c"
409+ sql=" psql -h $HOST -U $USER -p $PORT -c"
409410
410411 # Checking empty vars
411412 if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -422,16 +423,27 @@ create_db_pgsql() {
422423 exit $E_DBHOST_UNAVAILABLE
423424 fi
424425
425- # Adding database & checking result
426- $sql " CREATE DATABASE $database " > /dev/null 2>&1 ; code=" $? "
426+ # Adding new role
427+ $sql " CREATE ROLE $db_user WITH LOGIN PASSWORD '$db_password '" > /dev/null
428+ code=$?
427429 if [ ' 0' -ne " $code " ]; then
428430 echo " Error: Connect failed"
429431 log_event ' debug' " $E_DBHOST_UNAVAILABLE $V_EVENT "
430432 exit $E_DBHOST_UNAVAILABLE
431433 fi
432434
433- $sql " CREATE ROLE $db_user WITH LOGIN PASSWORD '$db_password '"
434- $sql " GRANT ALL PRIVILEGES ON DATABASE $database TO $db_user "
435+ # Adding database & checking result
436+ sql_q=" CREATE DATABASE $database OWNER $db_user " > /dev/null
437+ if [ " $TPL " = ' template0' ]; then
438+ sql_q=" $sql_q ENCODING '$encoding ' TEMPLATE $TPL " > /dev/null
439+ else
440+ sql_q=" $sql_q TEMPLATE $TPL " > /dev/null
441+ fi
442+ $sql " $sql_q " > /dev/null
443+
444+
445+ $sql " GRANT ALL PRIVILEGES ON DATABASE $database TO $db_user " > /dev/null
446+ $sql " GRANT CONNECT ON DATABASE template1 to $db_user " > /dev/null
435447 export PGPASSWORD=' pgsql'
436448}
437449
@@ -460,7 +472,7 @@ is_mysql_host_alive() {
460472is_pgsql_host_alive () {
461473 # Checking connection
462474 export PGPASSWORD=" $db_password "
463- sql=" psql -h $host -U $db_user -d $template - p $port -c"
475+ sql=" psql -h $host -U $db_user -p $port -c "
464476 $sql " SELECT VERSION()" > /dev/null 2>&1 ; code=" $? "
465477 if [ ' 0' -ne " $code " ]; then
466478 echo " Error: Connect failed"
@@ -545,7 +557,7 @@ change_db_pgsql_password() {
545557 done
546558
547559 export PGPASSWORD=" $PASSWORD "
548- sql=" psql -h $HOST -U $USER -d $TPL - p $PORT -c"
560+ sql=" psql -h $HOST -U $USER -p $PORT -c"
549561
550562 # Checking empty vars
551563 if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -638,7 +650,7 @@ del_db_pgsql() {
638650 done
639651
640652 export PGPASSWORD=" $PASSWORD "
641- sql=" psql -h $HOST -U $USER -d $TPL - p $PORT -c"
653+ sql=" psql -h $HOST -U $USER -p $PORT -c"
642654
643655 # Checking empty vars
644656 if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -656,6 +668,7 @@ del_db_pgsql() {
656668 fi
657669
658670 # Deleting database & checking result
671+ $sql " REVOKE ALL PRIVILEGES ON DATABASE $database FROM $db_user " > /dev/null
659672 $sql " DROP DATABASE $database " > /dev/null 2>&1 ; code=" $? "
660673 if [ ' 0' -ne " $code " ]; then
661674 echo " Error: Connect failed"
@@ -666,10 +679,10 @@ del_db_pgsql() {
666679 # Deleting user
667680 check_users=$( grep " USER='$db_user '" $V_USERS /$user /db.conf | wc -l)
668681 if [ 1 -ge " $check_users " ]; then
669- $sql " DROP ROLE $db_user " > /dev/null 2>&1
670- else
671- $sql " REVOKE ALL PRIVILEGES ON $database FROM $db_user " > /dev/null
682+ $sql " REVOKE CONNECT ON DATABASE template1 FROM $db_user " > /dev/null
683+ $sql " DROP ROLE $db_user " > /dev/null
672684 fi
685+
673686 export PGPASSWORD=' pgsql'
674687}
675688
@@ -727,7 +740,7 @@ dump_db_pgsql() {
727740 done
728741
729742 export PGPASSWORD=" $PASSWORD "
730- sql=" psql -h $HOST -U $USER -d $TPL - p $PORT -c"
743+ sql=" psql -h $HOST -U $USER -p $PORT -c"
731744 dumper=" pg_dump -h $HOST -U $USER -p $PORT -c -d -O -x -i -f"
732745 # Checking empty vars
733746 if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -853,7 +866,7 @@ suspend_db_pgsql() {
853866 done
854867
855868 export PGPASSWORD=" $PASSWORD "
856- sql=" psql -h $HOST -U $USER -d $TPL - p $PORT -c"
869+ sql=" psql -h $HOST -U $USER -p $PORT -c"
857870
858871 # Checking empty vars
859872 if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -911,7 +924,7 @@ unsuspend_db_pgsql() {
911924 done
912925
913926 export PGPASSWORD=" $PASSWORD "
914- sql=" psql -h $HOST -U $USER -d $TPL - p $PORT -c"
927+ sql=" psql -h $HOST -U $USER -p $PORT -c"
915928
916929 # Checking empty vars
917930 if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -999,7 +1012,7 @@ get_disk_db_pgsql() {
9991012 done
10001013
10011014 export PGPASSWORD=" $PASSWORD "
1002- sql=" psql -h $HOST -U $USER -d $TPL - p $PORT -c"
1015+ sql=" psql -h $HOST -U $USER -p $PORT -c"
10031016
10041017 # Checking empty vars
10051018 if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
0 commit comments