Skip to content

Instantly share code, notes, and snippets.

@tallesairan
Created June 15, 2020 05:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tallesairan/9ffbd27084447ee2a6a10a9fdcac4e8c to your computer and use it in GitHub Desktop.
Save tallesairan/9ffbd27084447ee2a6a10a9fdcac4e8c to your computer and use it in GitHub Desktop.
Mysql sync local to remote server
#!/bin/bash
# Remote DB credentials
LOCAL_USER=######
LOCAL_PASS=######
LOCAL_HOST=####
LOCAL_DB=####
LOCAL_PORT=###
# Local DB credential
REMOTE_USER=##
REMOTE_PASS=###
REMOTE_HOST=####
REMOTE_DB=####
REMOTE_PORT=3306
NOW=$(date +"%Y%m%d-%H%M")
REMOTE_FILE="remote-$NOW-$REMOTE_DB.sql"
LOCAL_FILE="local-$NOW-$LOCAL_DB.sql"
REMOTE_FILE_REF="remote-$NOW-$REMOTE_DB-ref.sql"
LOCAL_FILE_REF="local-$NOW-$LOCAL_DB-ref.sql"
START=$(date +"%Y%m%d-%H:%M:%S")
echo "Start $START"
echo "Dumping local database to $LOCAL_FILE"
eval "mysqldump -h $LOCAL_HOST -P $LOCAL_PORT --opt --single-transaction --quick --lock-tables=false --set-gtid-purged=OFF -u$LOCAL_USER -p$LOCAL_PASS $LOCAL_DB > $LOCAL_FILE"
echo "size of $LOCAL_FILE"
eval "ls -lh $LOCAL_FILE";
#eval "sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g' $LOCAL_FILE"
eval "sed -i 's/SET @@GLOBAL.GTID_PURGED=\"\"/#/g' $LOCAL_FILE"
echo "Importing local database into remote database"
eval "mysql -u$REMOTE_USER -p$REMOTE_PASS -h $REMOTE_HOST -P $REMOTE_PORT $REMOTE_DB < $LOCAL_FILE"
END=$(date +"%Y%m%d-%H:%M:%S")
echo "End DB $END"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment