Advertisement
Guest User

Untitled

a guest
May 1st, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. #!/bin/bash -e
  2.  
  3. # Set permissions: `chmod 755 ./mysql_copy.sh`
  4. # Run: `./mysql_copy.sh`
  5.  
  6.  
  7. ######### CONFIGURE HERE ######################################################
  8.  
  9. # insert your source database credentials
  10. SRC_DB_HOST=<SOURCE HOST HERE>
  11. SRC_DB_USER=<SOURCE USER HERE>
  12. SRC_DB_PASS=<SOURCE PASS HERE
  13.  
  14. # insert your destination database credentials
  15. DEST_DB_HOST=<DESTINATION HOST HERE>
  16. DEST_DB_USER=<DESTINATION USER HERE>
  17. DEST_DB_PASS=<DESTINATION PASS HERE>
  18.  
  19. # add the databases you want to ignore here space-separated
  20. # leave the information_schema, performance_schema and mysql
  21. IGNORE_DBS=( mysql performance_schema information_schema sys YOUR_DB_HERE ANOTHER_DB_HERE )
  22.  
  23. ########## END CONFIGURATION ##################################################
  24.  
  25. SRC_DB_OPTS="-q --host $SRC_DB_HOST --user $SRC_DB_USER -p$SRC_DB_PASS"
  26. DEST_DB_OPTS="-q --host $DEST_DB_HOST --user $DEST_DB_USER -p$DEST_DB_PASS"
  27.  
  28. GRAY='\033[1;30m'
  29. GREEN='\033[0;32m'
  30. WHITE='\033[1;37m'
  31. NC='\033[0m'
  32. echo -e "${GRAY}"
  33.  
  34. importdb() {
  35. db=$1
  36. }
  37.  
  38. # Loop through source databases
  39. mysql -e "show databases;" $SRC_DB_OPTS | while read db; do
  40. if [ "$db" != "Database" ] && [[ ! "${IGNORE_DBS[*]}" =~ "$db" ]]; then
  41.  
  42. # check for existence in destination
  43. set +e
  44. mysql $DEST_DB_OPTS $db -e "select 1;" >/dev/null 2>&1
  45. DB_EXISTS=$?
  46. set -e
  47.  
  48. # Check to see if the database exists
  49. if [ $DB_EXISTS -eq 0 ]; then
  50. echo -e "${GRAY}Skipping database '$db', already exists in destination${NC}"
  51. continue
  52. fi
  53.  
  54. # Prompt for input
  55. echo -en "${WHITE}Import database '$db' (y/n)? "
  56. read confirm </dev/tty
  57. echo -e "${NC}"
  58.  
  59. # Verify confirmed
  60. set +e
  61. echo $confirm | grep "^[Y|y]" >/dev/null 2>&1
  62. confirmed=$?
  63. set -e
  64.  
  65. if [ $confirmed -eq 0 ]; then
  66. echo -e "${GREEN}Importing database '$db' ..."
  67. echo -e "${GRAY}"
  68. mysqldump ${SRC_DB_OPTS} $db | mysql ${DEST_DB_OPTS}
  69. echo -e "${NC}"
  70. else
  71. echo -e "${GRAY}Skipping database '$db'${NC}"
  72. fi
  73.  
  74. else
  75. echo -e "${GRAY}Ignoring database '$db', in ignore list${NC}"
  76. fi
  77. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement