Advertisement
Guest User

Untitled

a guest
Apr 15th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.49 KB | None | 0 0
  1. mysqldump dbname -u root -p > dbname.sql
  2. tar czvf dbname.sql.tgz dbname.sql
  3. rm dbname.sql
  4.  
  5. mysqldump dbname -u root -p > some wizardry > dbname.sql.tgz
  6.  
  7. mysqldump dbname -u root -p > send dbname.sql.tgz to user@host
  8.  
  9. mysqldump --opt <database> | gzip -c | ssh user@wherever 'cat > /tmp/yourfile.sql.gz'
  10.  
  11. mysqldump -u userName -p (passwordPrompt) yourDatabaseName | gzip -v > output.gz
  12.  
  13. mkfifo mysql_pipe
  14. gzip -9 -c < mysql_pipe > name_of_dump.gz &
  15. mysqldump database > mysql_pipe
  16. rm mysql_pipe
  17.  
  18. ssh -C user@host "mysqldump --opt --compress database <table> | gzip -9 -c" > outputfile.sql.gz
  19.  
  20. mysqldump prod_db -h dbslave | pv | gzip -c > prod_2012_08_20.dump.tgz
  21.  
  22. mysqldump prod_db -h dbslave | pv -s 3g | gzip -c > prod_2012_08_20.dump.tgz
  23.  
  24. #!/bin/bash
  25. #set -x
  26.  
  27. #REQUIRED VARS
  28. SOURCE_USER=root #MySQL user
  29. SOURCE_HOST=localhost
  30. SOURCE_PASSWORD=yourmysqlpass #optional
  31. SOURCE_DBNAME=yourdbname
  32. TARGET_HOST=192.168.1.2
  33. TARGET_DBNAME=yourdbname
  34. TARGET_SSHUSER=root
  35. TARGET_SSHPASSWORD=yoursshpass #optional
  36. TABLES='table1 table2 table3 table4'
  37. TARGET_DIR="/data/dumpfiles"
  38. EXEC_ACTION_TEXT[0]='Reimport TABLES directly into remote MySQL database'
  39. EXEC_ACTION_TEXT[1]='Backup gzipped data to TARGED_DIR on remote TARGET_HOST'
  40. EXEC_ACTION=0
  41.  
  42. #print config
  43. echo "---------------------------------"
  44. echo " SOURCE_USER: $SOURCE_USER (MySQL)"
  45. if [ "SOURCE_PASSWORD" != "" ]; then
  46. echo " SOURCE_PASSWORD:<present> "; else
  47. echo " SOURCE_PASSWORD:<to be asked> "
  48. fi
  49. echo " SOURCE_HOST: $SOURCE_HOST "
  50. echo " SOURCE_DBNAME: $SOURCE_DBNAME "
  51. echo " TARGET_HOST: $TARGET_HOST "
  52. echo " TARGET_DBNAME: $TARGET_DBNAME "
  53. echo " TARGET_SSHUSER: $TARGET_SSHUSER "
  54. if [ "TARGET_SSHPASSWORD" != "" ]; then
  55. echo " TARGET_SSHPASS: <present> "; else
  56. echo " TARGET_SSHPASS: <to be asked> "
  57. fi
  58. echo " TABLES: $TABLES "
  59. echo " EXEC_ACTION: $EXEC_ACTION - ${EXEC_ACTION_TEXT[$EXEC_ACTION]}"
  60. echo " TARGET_DIR: $TARGET_DIR (only for action 1)"
  61. echo "---------------------------------"
  62. echo "PRESS <ENTER> to continue..."; read; echo
  63.  
  64. #read the mysql password from command-line (SOURCE and TARGET uses the same password)
  65. if [ "$SOURCE_PASSWORD" == "" ]; then
  66. echo -n "Type $SOURCE_USER password for MySQL servers: "; read -s SOURCE_PASSWORD; echo
  67. fi
  68. echo "Creating database $TARGET_DBNAME on $TARGET_HOST if not exists ... "
  69. mysql
  70. --user=$SOURCE_USER
  71. --password=$SOURCE_PASSWORD
  72. --host=$TARGET_HOST
  73. --execute "create database if not exists $TARGET_DBNAME;"
  74.  
  75. echo '--------------------------------------------------------------------------------------'
  76. echo "**** ATTENTION ****: execute this command on mysql server at $TARGET_HOST :"
  77. echo "GRANT ALL PRIVILEGES ON $TARGET_DBNAME.* TO '$SOURCE_USER'@'%' IDENTIFIED BY 'yourpass';"
  78. echo '--------------------------------------------------------------------------------------'
  79. echo "PRESS <ENTER> to continue..."; read; echo
  80.  
  81. #read the password from command-line
  82. if [ "$TARGET_SSHPASSWORD" == "" ]; then
  83. echo -n "Type the password for remote SSH Server (TARGET) ['$TARGET_SSHUSER'@'$TARGET_HOST']: "; read -s TARGET_SSHPASSWORD; echo
  84. fi
  85.  
  86. for thistable in $TABLES
  87. do
  88. case "$EXEC_ACTION" in
  89. 0)
  90. thisaction="gunzip | mysql --user=$SOURCE_USER --password=$SOURCE_PASSWORD -D $TARGET_DBNAME"
  91. endmessage='remote reimporting has finished'
  92. ;;
  93. 1)
  94. thisaction="cat > $TARGET_DIR/`date +%Y.%m.%d`-"$thistable".gz"
  95. endmessage="$thisaction has finished"
  96. ;;
  97. *) echo "EXEC_ACTION=$EXEC_ACTION not supported" && exit 1
  98. esac
  99.  
  100. echo "---------------------------------------------------------------------"
  101. echo "-- table $thistable"
  102. echo "---------------------------------------------------------------------"
  103. (
  104. echo -n "-- setting variables... " > /dev/stderr #talk to user via stderr
  105. echo "SET AUTOCOMMIT=0; SET UNIQUE_CHECKS=0; SET FOREIGN_KEY_CHECKS=0;"
  106. echo -n "starting mysqldump... " > /dev/stderr
  107. mysqldump --opt --user=$SOURCE_USER --password=$SOURCE_PASSWORD --host=$SOURCE_HOST $SOURCE_DBNAME $thistable
  108. echo -n "done mysqldump, reseting variables... " > /dev/stderr
  109. echo "SET FOREIGN_KEY_CHECKS=1; SET UNIQUE_CHECKS=1; SET AUTOCOMMIT=1;"
  110. echo -n "commiting... " > /dev/stderr
  111. echo "COMMIT;"
  112. echo "done!" > /dev/stderr
  113. ) |
  114. gzip -c -2 |
  115. pv |
  116. sshpass -p $TARGET_SSHPASSWORD ssh $TARGET_SSHUSER'@'$TARGET_HOST $thisaction
  117. echo $endmessage ' with exit status '$?
  118. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement