Advertisement
Guest User

Untitled

a guest
May 1st, 2017
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. ###EXAMPLE USAGE
  4. #./mysql-dump-import-table.sh OUTHOST:OPTIONAL-PORT OUTUSER OUTDB_NAME INHOST:OPTIONAL-PORT INUSER INDB_NAME
  5.  
  6. #Export Vars
  7. DB_host=$1
  8. DB_user=$2
  9. DB=$3
  10.  
  11. #import vars
  12. IDB_host=$4
  13. IDB_user=$5
  14. IDB=$6
  15.  
  16. #try to explode DB_host to check for port
  17. PORTCHK=(${DB_host//:/ })
  18. if test "${PORTCHK[1]+isset}"; then DB_port=${PORTCHK[1]}; else DB_port=3306; fi;
  19.  
  20. #same port check for IDB_host
  21. IPORTCHK=(${IDB_host//:/ })
  22. if test "${IPORTCHK[1]+isset}"; then IDB_port=${IPORTCHK[1]}; else IDB_port=3306; fi;
  23.  
  24. echo -n "Staging Path: "
  25. read DIR
  26.  
  27.  
  28. echo -n "Export DB password: "
  29. read -s DB_pass
  30.  
  31. echo
  32.  
  33. echo -n "Import DB Password: "
  34. read -s INDB_pass
  35.  
  36. echo
  37.  
  38. echo "Export Vars:"
  39. echo -e "\t Host: $DB_host"
  40. echo -e "\t User: $DB_user"
  41. echo -e "\t DB: $DB"
  42. echo -e "\t Port: $DB_port"
  43.  
  44. echo "Import Vars:"
  45. echo -e "\t Host: $IDB_host"
  46. echo -e "\t User: $IDB_user"
  47. echo -e "\t DB: $IDB"
  48. echo -e "\t Port: $IDB_port"
  49.  
  50. [ -n "$DIR" ] || DIR=.
  51. test -d $DIR || mkdir -p $DIR
  52.  
  53. echo "Staging table dump from database: '$DB'; into dir=$DIR"
  54.  
  55. tbl_count=0
  56.  
  57. for t in $(mysql --skip-secure-auth -NBA -h $DB_host -P $DB_port -u $DB_user -p$DB_pass -D $DB -e 'show tables')
  58. do
  59. echo "DUMPING TABLE: $DB.$t"
  60. mysqldump --skip-secure-auth --hex-blob --add-drop-table --single-transaction -h $DB_host -P $DB_port -u $DB_user -p$DB_pass $DB $t | gzip > $DIR/$DB.$t.sql.gz
  61. echo "IMPORTING TABLE: $DB.$t"
  62. gunzip < $DIR/$DB.$t.sql.gz | mysql --skip-secure-auth -h $IDB_host -P $IDB_port -u $IDB_user -p$INDB_pass -D $IDB
  63. tbl_count=$(( tbl_count + 1 ))
  64. done
  65.  
  66. echo "$tbl_count tables imported from '$DB_host':'$DB' to '$IDB_host':'$IDB'"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement