This commit is contained in:
Christoph 2018-12-02 21:46:35 +01:00
commit e73d71fd08

View File

@ -18,6 +18,7 @@
## - Show_view_priv
## - Event_priv
## - Process_priv (since MySQL 5.5)
## - Super_priv (since MySQL 5.6.?ß)
## -
## - INSERT INTO user (Host,User,Password,Select_priv,Lock_tables_priv,Show_view_priv,Event_priv) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y');
## -
@ -25,13 +26,17 @@
## - INSERT INTO user (Host,User,Password,Select_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y');
## -
## -
## - Since MySQL 5.6 - you also have to add process privileges (Super_priv = 'Y')
## - INSERT INTO user (Host,User,Password,Select_priv,Super_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y','Y');
## -
## -
## - Since MySQL 5.7.x - you also have to add process privileges (Execute_priv = 'Y')
## - Password field is now: "authentication_string"
## - INSERT INTO user (Host,User,authentication_string,Select_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv,Execute_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y','Y','','','');
## - INSERT INTO user (Host,User,authentication_string,Select_priv,Super_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv,Execute_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y','Y','Y','','','');
## -
## - MariaDB (10.1.x)
## -
## - INSERT INTO user (Host,User,Password,Select_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv,Execute_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y','Y','','','');
## - INSERT INTO user (Host,User,Password,Select_priv,Super_priv,Process_priv,Lock_tables_priv,Show_view_priv,Event_priv,Execute_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','backup',password('backup'),'Y','Y','Y','Y','Y','Y','Y','','','');
## -
## - or if updating from older mysql version:
## -
@ -84,6 +89,7 @@ fi
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
mysql=`$ssh ${ssh_user}@$srcHost which mysql`
mysqldump=`$ssh ${ssh_user}@$srcHost which mysqldump`
mysqld="$($ssh ${ssh_user}@$srcHost which mysqld)"
ssh_options="-o BatchMode=yes -o ConnectTimeout=360"
else
mysql=`which mysql`
@ -123,6 +129,15 @@ fi
MYSQL_VERSION_NUM=`echo $MYSQL_VERSION | awk -F \. '{ printf "%02d", $1; printf "%02d", $2; printf "%02d", $3 }'`
if [[ "${MYSQL_VERSION,,}" =~ mariadb ]]; then
MYSQL_DISTRIBUTION="MariaDB"
else
MYSQL_DISTRIBUTION="MySQL"
fi
if [ ! -d $_backupDestArchiveDir ]; then
mkdir -p $_backupDestArchiveDir
fi
@ -145,14 +160,14 @@ if $ARCHIVE ;then
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''\" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g'" \
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g'" \
> ${_backupDestArchiveDir}/MySQLGrants.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''\" | $mysql -u$mysql_user -p$mysql_password -N -s -A | sed 's/\$/;/g'" \
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\" | $mysql -u$mysql_user -p$mysql_password -N -s -A | sed 's/\$/;/g'" \
> ${_backupDestArchiveDir}/MySQLGrants.sql-${filedate}.sql 2> $err_Log
exit $?
)
@ -161,21 +176,22 @@ if $ARCHIVE ;then
else
if [ -n "$mysql_credential_args" ] ; then
$(
$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \
$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \
> ${_backupDestArchiveDir}/MySQLGrants.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | $mysql -u$mysql_user -p$mysql_password -N -s -A | sed 's/\$/;/g' \
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" | $mysql -u$mysql_user -p$mysql_password -N -s -A | sed 's/\$/;/g' \
> ${_backupDestArchiveDir}/MySQLGrants.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
fi
err_msg="Cannot save SQL Grants for users"
keep_backup_on_error=false
@ -238,6 +254,572 @@ if $ARCHIVE ;then
## - End: Backup SQL Grants for users
## ----------------------------------
## - Since MySQL 5.7, no user creation statement (with password) will be
## - include in above MySQL Grant backup
## -
## - We provide two different version ..
## -
if [[ "$MYSQL_DISTRIBUTION" = "MySQL" ]] ; then
if [ "$MYSQL_VERSION_NUM" -ge 050700 ]; then
## -----------------------------
## - Backup/Create User Craetion sql statements (00)
## -
info_msg="create User creation SQL file (00)"
echononl "\t$info_msg"
## - begin timestamp
## -
b_timestamp=`$date +"%s"`
filedate=`$date +"%Y-%m-%d-%H%M"`
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
else
if [ -n "$mysql_credential_args" ] ; then
$(
$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \
> ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$mysql $mysql_credential_args -N -s -A -e"SELECT CONCAT('SHOW CREATE USER ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" | $mysql $mysql_credential_args -N -s -A | sed 's/\$/;/g' \
> ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
fi
err_msg="Cannot create User Creation SQL file (00)"
keep_backup_on_error=false
if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql 2> $err_Log
retval=$?
err_msg="Cannot gzip \"MySQLCreateUser-00.sql-${filedate}.sql\""
keep_backup_on_error=true
fi
fi
## - end timestamp
## -
e_timestamp=`$date +"%s"`
## - determin duration
## -
_time=`expr $e_timestamp - $b_timestamp`
t_h=`expr $_time / 60 / 60`
t_rest_h=`expr $_time - $t_h \\* 60 \\* 60`
t_m=`expr $t_rest_h / 60`
t_s=`expr $t_rest_h - $t_m \\* 60`
duration=""
if [ $t_h -gt 0 ]; then
duration="$t_h h : $t_m min : $t_s sec"
elif [ $t_m -gt 0 ];then
duration="$t_m min : $t_s sec"
else
duration="$t_s sec"
fi
## - look about errors..
## -
if [ "$retval" != "0" ]; then
echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser-00.sql-${filedate}.sql
fi
else
## - print durations right-aligned
## -
[ -z $right_tabstop ] && right_tabstop=65
_tmp_string="${info_msg}${duration}"
_strlen=${#_tmp_string}
_count_blank=`expr $right_tabstop - $_strlen`
_str_blanks=""
while [ $_count_blank -gt 1 ]; do
_str_blanks="$_str_blanks "
_count_blank=`expr $_count_blank - 1`
done
echononl "$_str_blanks"
echolog " [ $duration ]"
fi
## - End: Backup/Create User Craetion sql statements (00)
## ----------------------------------
## -----------------------------
## - Backup/Create User Craetion sql statements (01)
## -
info_msg="create User creation SQL file (01)"
echononl "\t$info_msg"
## - begin timestamp
## -
b_timestamp=`$date +"%s"`
filedate=`$date +"%Y-%m-%d-%H%M"`
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
else
if [ -n "$mysql_credential_args" ] ; then
$(
$mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',authentication_string,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
fi
err_msg="Cannot create User Creation SQL file (01)"
keep_backup_on_error=false
if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql 2> $err_Log
retval=$?
err_msg="Cannot gzip \"MySQLCreateUser-01.sql-${filedate}.sql\""
keep_backup_on_error=true
fi
fi
## - end timestamp
## -
e_timestamp=`$date +"%s"`
## - determin duration
## -
_time=`expr $e_timestamp - $b_timestamp`
t_h=`expr $_time / 60 / 60`
t_rest_h=`expr $_time - $t_h \\* 60 \\* 60`
t_m=`expr $t_rest_h / 60`
t_s=`expr $t_rest_h - $t_m \\* 60`
duration=""
if [ $t_h -gt 0 ]; then
duration="$t_h h : $t_m min : $t_s sec"
elif [ $t_m -gt 0 ];then
duration="$t_m min : $t_s sec"
else
duration="$t_s sec"
fi
## - look about errors..
## -
if [ "$retval" != "0" ]; then
echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser-01.sql-${filedate}.sql
fi
else
## - print durations right-aligned
## -
[ -z $right_tabstop ] && right_tabstop=65
_tmp_string="${info_msg}${duration}"
_strlen=${#_tmp_string}
_count_blank=`expr $right_tabstop - $_strlen`
_str_blanks=""
while [ $_count_blank -gt 1 ]; do
_str_blanks="$_str_blanks "
_count_blank=`expr $_count_blank - 1`
done
echononl "$_str_blanks"
echolog " [ $duration ]"
fi
## - End: Backup/Create User Craetion sql statements (01)
## ----------------------------------
elif [ $MYSQL_VERSION_NUM -ge 050600 ]; then
## -----------------------------
## - User Craetion sql statements for MySQL 5.7.x
## -
info_msg="create User creation SQL file for MySQL 5.7.x"
echononl "\t$info_msg"
## - begin timestamp
## -
b_timestamp=`$date +"%s"`
filedate=`$date +"%Y-%m-%d-%H%M"`
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
else
if [ -n "$mysql_credential_args" ] ; then
$(
$mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''',password,'''; ') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
fi
err_msg="Cannot create User Creation SQL file for MySQL 5.7.x"
keep_backup_on_error=false
if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log
retval=$?
err_msg="Cannot gzip \"MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql\""
keep_backup_on_error=true
fi
fi
## - end timestamp
## -
e_timestamp=`$date +"%s"`
## - determin duration
## -
_time=`expr $e_timestamp - $b_timestamp`
t_h=`expr $_time / 60 / 60`
t_rest_h=`expr $_time - $t_h \\* 60 \\* 60`
t_m=`expr $t_rest_h / 60`
t_s=`expr $t_rest_h - $t_m \\* 60`
duration=""
if [ $t_h -gt 0 ]; then
duration="$t_h h : $t_m min : $t_s sec"
elif [ $t_m -gt 0 ];then
duration="$t_m min : $t_s sec"
else
duration="$t_s sec"
fi
## - look about errors..
## -
if [ "$retval" != "0" ]; then
echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql
fi
else
## - print durations right-aligned
## -
[ -z $right_tabstop ] && right_tabstop=65
_tmp_string="${info_msg}${duration}"
_strlen=${#_tmp_string}
_count_blank=`expr $right_tabstop - $_strlen`
_str_blanks=""
while [ $_count_blank -gt 1 ]; do
_str_blanks="$_str_blanks "
_count_blank=`expr $_count_blank - 1`
done
echononl "$_str_blanks"
echolog " [ $duration ]"
fi
## - Create User Craetion sql statements for MySQL 5.7.x
## ----------------------------------
fi # End: if [ "$MYSQL_VERSION_NUM" -ge 050700 ]; then
elif [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then
## -----------------------------
## - Create User Craetion sql statements (MariaDB)
## -
info_msg="create User creation SQL file (MariaDB)"
echononl "\t$info_msg"
## - begin timestamp
## -
b_timestamp=`$date +"%s"`
filedate=`$date +"%Y-%m-%d-%H%M"`
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
else
if [ -n "$mysql_credential_args" ] ; then
$(
$mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \
> ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS''',user,'''@''localhost''; UPDATE user SET password = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \
> ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
fi
err_msg="Cannot create User Creation SQL file (MariaDB)"
keep_backup_on_error=false
if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql 2> $err_Log
retval=$?
err_msg="Cannot gzip \"MySQLCreateUser.sql-${filedate}.sql\""
keep_backup_on_error=true
fi
fi
## - end timestamp
## -
e_timestamp=`$date +"%s"`
## - determin duration
## -
_time=`expr $e_timestamp - $b_timestamp`
t_h=`expr $_time / 60 / 60`
t_rest_h=`expr $_time - $t_h \\* 60 \\* 60`
t_m=`expr $t_rest_h / 60`
t_s=`expr $t_rest_h - $t_m \\* 60`
duration=""
if [ $t_h -gt 0 ]; then
duration="$t_h h : $t_m min : $t_s sec"
elif [ $t_m -gt 0 ];then
duration="$t_m min : $t_s sec"
else
duration="$t_s sec"
fi
## - look about errors..
## -
if [ "$retval" != "0" ]; then
echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser.sql-${filedate}.sql
fi
else
## - print durations right-aligned
## -
[ -z $right_tabstop ] && right_tabstop=65
_tmp_string="${info_msg}${duration}"
_strlen=${#_tmp_string}
_count_blank=`expr $right_tabstop - $_strlen`
_str_blanks=""
while [ $_count_blank -gt 1 ]; do
_str_blanks="$_str_blanks "
_count_blank=`expr $_count_blank - 1`
done
echononl "$_str_blanks"
echolog " [ $duration ]"
fi
## - End: Create User Craetion sql statements (MariaDB)
## ----------------------------------
## -----------------------------
## - Create User Craetion sql statements for MySQL 5.7.x (from MariaDB)
## -
info_msg="create User creation SQL file for MySQL 5.7.x (from MariaDB)"
echononl "\t$info_msg"
## - begin timestamp
## -
b_timestamp=`$date +"%s"`
filedate=`$date +"%Y-%m-%d-%H%M"`
if [ $srcHost != "localhost" ] || $_via_ssh_tunnel ;then
if [ -n "$mysql_credential_args" ] ; then
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql $mysql_credential_args -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$ssh $ssh_options ${ssh_user}@$srcHost "$mysql -u$mysql_user -p$mysql_password -N -s -A -e\"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'\"" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
else
if [ -n "$mysql_credential_args" ] ; then
$(
$mysql $mysql_credential_args -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
else
$(
$mysql -u$mysql_user -p$mysql_password -N -s -A -e"SELECT DISTINCT CONCAT('CREATE USER IF NOT EXISTS ''',user,'''@''localhost'' IDENTIFIED WITH mysql_native_password ; UPDATE user SET authentication_string = ''',password,''' WHERE user = ''',user,'''; FLUSH PRIVILEGES;') FROM mysql.user WHERE user<>'' AND user <> 'root' AND user <> 'sys-maint' AND user <> 'debian-sys-maint' AND user <> 'backup' AND user <> 'mysql.sys' AND user <> 'mysql.session'" \
> ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7..sql-${filedate}.sql 2> $err_Log
exit $?
)
retval=$?
fi
fi
err_msg="Cannot create User Creation SQL file for MySQL-5.7.x (MariaDB)"
keep_backup_on_error=false
if [ "$retval" = 0 ];then
[ -z $mysql_gzip ] && mysql_gzip=false
if $mysql_gzip ; then
$gzip ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql 2> $err_Log
retval=$?
err_msg="Cannot gzip \"MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql\""
keep_backup_on_error=true
fi
fi
## - end timestamp
## -
e_timestamp=`$date +"%s"`
## - determin duration
## -
_time=`expr $e_timestamp - $b_timestamp`
t_h=`expr $_time / 60 / 60`
t_rest_h=`expr $_time - $t_h \\* 60 \\* 60`
t_m=`expr $t_rest_h / 60`
t_s=`expr $t_rest_h - $t_m \\* 60`
duration=""
if [ $t_h -gt 0 ]; then
duration="$t_h h : $t_m min : $t_s sec"
elif [ $t_m -gt 0 ];then
duration="$t_m min : $t_s sec"
else
duration="$t_s sec"
fi
## - look about errors..
## -
if [ "$retval" != "0" ]; then
echolog ""
echolog "\t[ERROR] ${err_msg} [ $duration ]\n\t`$cat $err_Log`\n"
if ! $keep_backup_on_error ; then
rm -f ${_backupDestArchiveDir}/MySQLCreateUser-for-MySQL-5.7.sql-${filedate}.sql
fi
else
## - print durations right-aligned
## -
[ -z $right_tabstop ] && right_tabstop=65
_tmp_string="${info_msg}${duration}"
_strlen=${#_tmp_string}
_count_blank=`expr $right_tabstop - $_strlen`
_str_blanks=""
while [ $_count_blank -gt 1 ]; do
_str_blanks="$_str_blanks "
_count_blank=`expr $_count_blank - 1`
done
echononl "$_str_blanks"
echolog " [ $duration ]"
fi
## - End: Create User Craetion sql statements for MySQL 5.7.x (from MariaDB)
## ----------------------------------
fi # End: if [[ "$MYSQL_DISTRIBUTION" = "MySQL" ]] ; then
## -----------------------------
## - Backup/Create Database Craetion sql statements
## -