Update scripts for copy Users and datbases, create log-file and error-file

parent 4d8ebba5
......@@ -4,7 +4,7 @@ echo
echo "The mysql dump is been creating..."
echo
mysqldump "$1" > tmpdb.sql
mysqldump --defaults-file=.mysql.source -f "$1" > tmpdb.sql
echo
echo 'The base has been dumped'
......
#!/bin/bash
mysqluserclone --source=.mysql.source --destination=.mysql.destination "$1@'%'" "$1@'%'"
#mysqluserclone --source=.mysql.source --destination=.mysql.destination "$1@'%'" "$1@'%'"
HASH=$(echo "show grants for ${1}@'%' " | mysql --defaults-file=.mysql.source -Ns |sed -e 's/^.*IDENTIFIED BY PASSWORD //' |cut -f1 -d' '|head -n1|grep \'\\\*)
#Before Mysql 5.7:
GRANTS=$(echo "show grants for ${1}@'%' " | mysql --defaults-file=.mysql.source -Ns) # | sed -e 's/^.*IDENTIFIED BY PASSWORD //' |cut -f1 -d' '|head -n1|grep \'\\\*)
HASH=$(echo "${GRANTS}" | sed -e 's/^.*IDENTIFIED BY PASSWORD //' |cut -f1 -d' '|head -n1|grep \'\\\*)
#After Mysql 5.7
# SELECT authentication_string FROM mysql.user WHERE User=${1}; - вторая строка вернёт HASH
echo
echo "GRANTS is: ${GRANTS}"
echo "HASH is: ${HASH}"
echo
[ x = x${HASH} ] && echo "HASH dump error" && exit 1
echo "SET PASSWORD for ${1}@'%' =$HASH" | mysql --defaults-file=.mysql.destination
#echo "${GRANTS}" | hexdump -C
mysql --defaults-file=.mysql.destination -e "CREATE USER ${1};"
echo "UPDATE mysql.user SET authentication_string=${HASH} WHERE User='${1}';" | mysql --defaults-file=.mysql.destination
echo "${GRANTS}" | grep -v "$HASH" | while read RULE; do echo "${RULE};" | mysql --defaults-file=.mysql.destination; done
mysql --defaults-file=.mysql.destination -e "flush privileges;"
#echo "SET PASSWORD for ${1}@'%' =$HASH" | mysql --defaults-file=.mysql.destination
echo "Success!"
\ No newline at end of file
......@@ -5,6 +5,8 @@ echo
echo "The user is: ${1}@'%' "
echo
./mysql_trans_user.sh "$1"
./mysql_trans_db.sh "$1"
./mysql_trans_user.sh "$1" 2>>error
./mysql_trans_db.sh "$1" 2>>error
echo "${1} - done!"
echo "${1} - done!" >> log
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment