Compare commits

..

6 Commits

3 changed files with 118 additions and 5 deletions

105
README.create-user Normal file
View File

@ -0,0 +1,105 @@
# ----------
# MariaDB > 10.3
# ----------
# ---
# - Backup user
# ---
USER=backup
PASS=backup
mysql -u root -S /run/mysqld/mysqld.sock -N -s -e "CREATE USER '${USER}'@'localhost' IDENTIFIED BY '${PASS}'"
mysql -u root -S /run/mysqld/mysqld.sock -N -s -e "GRANT USAGE ON *.* TO '${USER}'@'localhost'"
mysql -u root -S /run/mysqld/mysqld.sock -N -s -e "GRANT SELECT, SHOW VIEW, EVENT, LOCK TABLES, EXECUTE, RELOAD, BINLOG MONITOR, REPLICATION CLIENT ON *.* TO '${USER}'@'localhost'"
mysql -u root -S /run/mysqld/mysqld.sock -N -s -e "FLUSH PRIVILEGES"
# ---
# - Admin user (Warenform)
# ---
CREATE USER IF NOT EXISTS 'admin'@'localhost' IDENTIFIED BY PASSWORD '*B45517A8959A464158F62B12FE7CDBAD79DCA343'; FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# ----------
# MySQL: Option/Variable --login-path
# ----------
# as user backup
#
mysql_config_editor set --login-path=local --socket=/run/mysqld/mysqld.sock --user=backup --password
# as user root
#
mysql_config_editor set --login-path=local --socket=/run/mysqld/mysqld.sock --user=root --password
# ----------
# MySQL 5.7
# ----------
# ---
# - Backup user
# ---
MYSQL_CREDENTIAL_ARGS="--login-path=local"
USER=backup
PASS=backup
mysql ${MYSQL_CREDENTIAL_ARGS} -N -s -e \
"INSERT INTO user (Host,User,authentication_string,Select_priv,Reload_priv,Super_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv,Execute_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','${USER}',password('${PASS}'),'Y','Y','Y','Y','Y','Y','Y','Y','','','');"
mysql ${MYSQL_CREDENTIAL_ARGS} -N -s -e \
"CREATE USER IF NOT EXISTS 'admin'@'localhost' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = '*B45517A8959A464158F62B12FE7CDBAD79DCA343' WHERE user = 'admin'; FLUSH PRIVILEGES;"
mysql ${MYSQL_CREDENTIAL_ARGS} -N -s -e "FLUSH PRIVILEGES";
# ---
# - Admin user (Warenform)
# ---
mysql ${MYSQL_CREDENTIAL_ARGS} -N -s -e \
"CREATE USER 'admin'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '*B45517A8959A464158F62B12FE7CDBAD79DCA343' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK;"
mysql ${MYSQL_CREDENTIAL_ARGS} -N -s -e "FLUSH PRIVILEGES";
# ----------
# MySQL 8.x
# ---------
MYSQL_CREDENTIAL_ARGS="--login-path=local"
USER=backup
PASS=backup
mysql ${MYSQL_CREDENTIAL_ARGS} -N -s -e \
"INSERT INTO user (Host,User,Select_priv,Reload_priv,Super_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv,Execute_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','${USER}','Y','Y','Y','Y','Y','Y','Y','Y','','','');-"
mysql ${MYSQL_CREDENTIAL_ARGS} -N -s -e \
"CREATE USER '${USER}'@'localhost' IDENTIFIED WITH mysql_native_password BY '${PASS}'"
mysql ${MYSQL_CREDENTIAL_ARGS} -N -s -e \
"SET PASSWORD FOR 'backup'@'localhost' = 'backup';"
mysql ${MYSQL_CREDENTIAL_ARGS} -N -s -e "FLUSH PRIVILEGES";

View File

@ -84,11 +84,11 @@ fatal(){
if $terminal ; then
if [[ -n "$*" ]] ; then
echo -e " [ \033[31m\033[1mFatal\033[m ]: $*"
echo ""
echo -e " \033[31m\033[1mScript will be interrupted.\033[m"
else
echo " \033[31m\033[1mFatal error\033[m:"
echo -e " \033[31m\033[1mFatal error\033[m: \033[1mScript will be interrupted.\033[m"
fi
echo ""
echo -e " \033[31m\033[1mScript will be interrupted.\033[m\033[m"
else
if [[ -n "$*" ]] ; then
echo " [ Fatal ]: $*"
@ -156,6 +156,13 @@ echo_skipped() {
fi
}
blank_line() {
if $terminal ; then
echo ""
fi
}
is_number() {
return $(test ! -z "${1##*[!0-9]*}" > /dev/null 2>&1);
@ -276,6 +283,7 @@ if $NON_INTERACTIVE_MODE && [[ -z "$DATABASE_NAME" ]]; then
fi
blank_line
echononl " Get MySQL command.."
mysql_command="$(which mysql)"
if [[ $? -eq 0 ]]; then

View File

@ -505,7 +505,7 @@ fi
# ----------
echononl " Read Commandline Parameter.."
while getopts bd:f:hs: opt ; do
while getopts bc:d:f:hs: opt ; do
case $opt in
b) BATCH_MODE=true
NON_INTERACTIVE_MODE=true
@ -1072,7 +1072,7 @@ fi
echononl " Dump Database '${DATABASE_NAME}'.."
b_timestamp=$(date +"%s")
if [[ -n "$DATABASE_SERVER" ]] ; then
${mysqldump_command} -h $DATABASE_SERVER $DATABASE_CREDENTIALS_ARGS $DATABASE_NAME > ${DATABASE_DUMP_FOLDER}/${DATABASE_DUMP_FILEi} 2> $log_file
${mysqldump_command} -h $DATABASE_SERVER $DATABASE_CREDENTIALS_ARGS $DATABASE_NAME > ${DATABASE_DUMP_FOLDER}/${DATABASE_DUMP_FILE} 2> $log_file
else
${mysqldump_command} $DATABASE_CREDENTIALS_ARGS $DATABASE_NAME > ${DATABASE_DUMP_FOLDER}/${DATABASE_DUMP_FILE} 2> $log_file
fi