Advertisement
Guest User

Untitled

a guest
May 2nd, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 15.12 KB | None | 0 0
  1. :main
  2. cls
  3. @echo off
  4. if "%cmode%" == "n" (color 7) else (color 17)
  5. set ask=1
  6. echo  #############################################################################
  7. echo  ###                             MySQL Utility                             ###
  8. echo  #############################################################################
  9. echo  #############################################################################
  10. echo  ###                                                                       ###
  11. echo  ###                                                                       ###
  12. echo  ### Tools:                                                                ###
  13. echo  ###                                                                       ###
  14. echo  ### (1) Backup Utility                                                    ###
  15. echo  ###                                                                       ###
  16. echo  ### (2) Restore Utility                                                   ###
  17. echo  ###                                                                       ###
  18. echo  ### (3) Quit                                                              ###
  19. echo  ###                                                                       ###
  20. echo  ###                                                                       ###
  21. echo  #############################################################################
  22. set /P ask="Choose a utility (default is '%ask%') : "
  23. if /i %ask%==1 goto mainback
  24. if /i %ask%==2 goto mainrest
  25. if /i %ask%==3 goto end
  26.  
  27. :mainback
  28. cls
  29. title MySQL Backup Utility
  30. echo  #############################################################################
  31. echo  ###                           MySQL Backup Tool                           ###
  32. echo  #############################################################################
  33.  
  34. :configback
  35. echo  #############################################################################
  36. echo  ###                          Loading Configuration                        ###
  37. echo  ###                                                                       ###
  38. set mysqlbinpath=%ProgramFiles%\MySQL\MySQL Server 5.1\bin
  39. set user=root
  40. set pass=
  41. set host=localhost
  42. set db=cm
  43. set port=3306
  44. set cmode=c
  45. set mysqldumppath=
  46. set mysqlpath=
  47. set backup=
  48. set cmdline=
  49. set ask=
  50. set routines=yes
  51. set trigger=yes
  52. set events=yes
  53. set cins=no
  54. echo  ###                     Checking for MySQL in PATH variable               ###
  55. path|find "MySQL">NUL
  56. if %errorlevel% == 0 (
  57. echo  ###                       MySQL found in PATH variable                    ###
  58. set mysqlbinpath=use path
  59. ) else (
  60. echo  ###        MySQL NOT found in PATH variable please insert bin path        ###
  61. set /P mysqlbinpath="(default '%mysqlbinpath%' , no '\' needed!) : class="re0">"
  62. )
  63. if not "%mysqlbinpath%" == "use path" call :binaryfind
  64.  
  65. :connset
  66. if "%cmode%" == "n" (color 7) else (color 17)
  67. cls
  68. echo  #############################################################################
  69. echo  ###                          Connection Settings                          ###
  70. echo  #############################################################################
  71. set /P user="MySQL Username (default is '%user%') : "
  72. set /P pass="MySQL Password (default is '%pass%') : "
  73. set /P db="MySQL Database (default is '%db%' , use 'all' for all databases) : "
  74. set /P host="MySQL Host (default is '%host%') : "
  75. set /P port="MySQL Port (default is '%port%') : "
  76. echo  #############################################################################
  77. echo  ###                             Misc. Settings                            ###
  78. echo  #############################################################################
  79. set /P cmode="Color mode (c)olor or (n)on-color, default is '%cmode%' : "
  80. set /P backup="Path for your backups (default is '%backup%' , with '\' at the end!) : class="re0">"
  81. set /P cins="Do you wish to have complete insert statements (default is '%cins%') : "
  82. set /P routines="Do you wish to include stored procedures and functions (default is '%routines%') : "
  83. set /P trigger="Do you wish to include triggers (default is '%trigger%') : "
  84. set /P events="Do you wish to include events (default is '%trigger%') : "
  85.  
  86. :backup
  87. if "%cmode%" == "n" (color 7) else (color 17)
  88. if "%mysqlbinpath%" == "use path" (
  89. set mysqlbinpath=
  90. set mysqldumppath=mysqldump
  91. set mysqlpath=mysql
  92. ) else (
  93. set mysqldumppath=%mysqlbinpath%\mysqldump.exe
  94. set mysqlpath=%mysqlpath%\mysql.exe
  95. )
  96. set cmdline=%mysqldumppath% -h %host% --port=%port% -u %user% --password=%pass%
  97. if "%cins%" == "yes" (set cmdline=%cmdline% --complete-insert)
  98. if "%routines%" == "yes" (set cmdline=%cmdline% --routines)
  99. if "%trigger%" == "yes" (set cmdline=%cmdline% --triggers)
  100. if "%events%" == "yes" (set cmdline=%cmdline% --events)
  101. if "%db%" == "all" (set cmdline=%cmdline% --all-databases ^>"%backup%%db%_backup.sql" 2^>NUL
  102. ) else (
  103. set cmdline=%cmdline% %db% ^>"%backup%%db%_backup.sql" 2^>NUL)
  104.  
  105. cls
  106. echo  #############################################################################
  107. echo  ###                          Trying to make a backup                      ###
  108. echo  #############################################################################
  109. %cmdline%
  110. if %ERRORLEVEL% == 0 goto backupok
  111.  
  112. :backupfail
  113. cls
  114. if "%cmode%" == "n" (color 7) else (color 47)
  115. title !!! BACKUP FAILED !!!
  116. set ask=y
  117. del %db%_backup.sql
  118. echo  #############################################################################
  119. echo  ###                               Backup Failed                           ###
  120. echo  #############################################################################
  121. echo  ### ATTEMPT TO BACKUP DATABASE AGAIN?                       ###
  122. echo  ###                                                                       ###
  123. echo  ### (y)es                                                                 ###
  124. echo  ###                                                                       ###
  125. echo  ### (n)o                                                                  ###
  126. echo  ###                                                                       ###
  127. echo  ### (r)econfigure                                                         ###
  128. echo  ###                                                                       ###
  129. echo  ### (q)uit                                                                ###
  130. echo  ###                                                                       ###
  131. echo  #############################################################################
  132. set /P ask= Choose (default is '%ask%') :
  133. color 17
  134. if /i %ask%==y goto backup
  135. if /i %ask%==n goto main
  136. if /i %ask%==r goto connset
  137. if /i %ask%==q goto end
  138. goto backupfail
  139.  
  140. :backupok
  141. if "%cmode%" == "n" (color 7) else (color 17)
  142. set ask=q
  143. cls
  144. echo  #############################################################################
  145. echo  ###                            Backup Completed                           ###
  146. echo  #############################################################################
  147. echo  ### What will you do now?                                                 ###
  148. echo  ###                                                                       ###
  149. echo  ### (m)ain Menu                                                           ###
  150. echo  ###                                                                       ###
  151. echo  ### (r)econfigure backup                                                  ###
  152. echo  ###                                                                       ###
  153. echo  ### (q)uit                                                                ###
  154. echo  ###                                                                       ###
  155. echo  #############################################################################
  156. set /P ask= Choose (default is '%ask%') :
  157. if /i %ask%==m goto main
  158. if /i %ask%==r goto connset
  159. if /i %ask%==q goto end
  160. goto backupok
  161.  
  162. :end
  163. if "%cmode%" == "n" (color 7) else (color 17)
  164. cls
  165. echo  #############################################################################
  166. echo  ###                          MySQL Backup Utlity                          ###
  167. echo  #############################################################################
  168. echo  ###                                                                       ###
  169. echo  ###                                                                       ###
  170. echo  ###                                                                       ###
  171. echo  ###                                                                       ###
  172. echo  ###                                                                       ###
  173. echo  ###                           Please come again!                          ###
  174. echo  ###                                                                       ###
  175. echo  ###                                                                       ###
  176. echo  ###                                                                       ###
  177. echo  ###                                                                       ###
  178. echo  ###                                                                       ###
  179. echo  ###                                                                       ###
  180. echo  #############################################################################
  181. pause
  182. exit
  183.  
  184. :mainrest
  185. echo  #############################################################################
  186. echo  ###                         MySQL Restore Utlity                          ###
  187. echo  #############################################################################
  188.  
  189. :configrest
  190. echo  #############################################################################
  191. echo  ###                          Loading Configuration                        ###
  192. echo  ###                                                                       ###
  193. set mysqlbinpath=%ProgramFiles%\MySQL\MySQL Server 5.1\bin
  194. set user=root
  195. set pass=
  196. set host=localhost
  197. set db=mysql
  198. set port=3306
  199. set cmode=c
  200. set mysqldumppath=
  201. set mysqlpath=
  202. set restore=
  203. set cmdline=
  204. set ask=
  205. echo  ###                     Checking for MySQL in PATH variable               ###
  206. path|find "MySQL">NUL
  207. if %errorlevel% == 0 (
  208. echo  ###                       MySQL found in PATH variable                    ###
  209. set mysqlbinpath=use path
  210. ) else (
  211. echo  ###        MySQL NOT found in PATH variable please insert bin path        ###
  212. set /P mysqlbinpath="(default '%mysqlbinpath%' , no '\' needed!) : class="re0">"
  213. )
  214. if not "%mysqlbinpath%" == "use path" call :binaryfind
  215.  
  216. :connsetrest
  217. if "%cmode%" == "n" (color 7) else (color 17)
  218. cls
  219. echo  #############################################################################
  220. echo  ###                          Connection Settings                          ###
  221. echo  #############################################################################
  222. set /P user="MySQL Username (default is '%user%') : "
  223. set /P pass="MySQL Password (default is '%pass%') : "
  224. set /P db="MySQL Database (default is '%db%') : "
  225. set /P host="MySQL Host (default is '%host%') : "
  226. set /P port="MySQL Port (default is '%port%') : "
  227. set restore=%db%_backup.sql
  228. echo  #############################################################################
  229. echo  ###                             Misc. Settings                            ###
  230. echo  #############################################################################
  231. set /P cmode="Color mode (c)olor or (n)on-color, default is '%cmode%' : "
  232. set /P restore="Path to your backup file (default is '%restore%' , with '.sql' at the end!) : class="re0">"
  233.  
  234. :restore
  235. if "%cmode%" == "n" (color 7) else (color 17)
  236. if "%mysqlbinpath%" == "use path" (
  237. set mysqlbinpath=
  238. set mysqldumppath=mysqldump
  239. set mysqlpath=mysql
  240. ) else (
  241. set mysqldumppath=%mysqlbinpath%\mysqldump.exe
  242. set mysqlpath=%mysqlpath%\mysql.exe
  243. )
  244. set cmdline=%mysqlpath% -h %host% --port=%port% -u %user% --password=%pass% %db% ^< %restore% 2^> NUL
  245.  
  246. cls
  247. echo  #############################################################################
  248. echo  ###                       Trying to restore the backup                    ###
  249. echo  #############################################################################
  250. %cmdline%
  251. if %ERRORLEVEL% == 0 goto restoreok
  252. goto restorefail
  253.  
  254. :restorefail
  255. cls
  256. if "%cmode%" == "n" (color 7) else (color 47)
  257. title !!! RESTORE FAILED !!!
  258. set ask=y
  259. echo  #############################################################################
  260. echo  ###                              Restore Failed                           ###
  261. echo  #############################################################################
  262. echo  ### ATTEMPT TO RESTORE DATABASE AGAIN?                                    ###
  263. echo  ###                                                                       ###
  264. echo  ### (y)es                                                                 ###
  265. echo  ###                                                                       ###
  266. echo  ### (n)o                                                                  ###
  267. echo  ###                                                                       ###
  268. echo  ### (r)econfigure                                                         ###
  269. echo  ###                                                                       ###
  270. echo  ### (q)uit                                                                ###
  271. echo  ###                                                                       ###
  272. echo  #############################################################################
  273. set /P ask= Choose (default is '%ask%') :
  274. if /i %ask%==y goto restore
  275. if /i %ask%==n goto main
  276. if /i %ask%==r goto connsetrest
  277. if /i %ask%==q goto end
  278. goto backupfail
  279.  
  280. :restoreok
  281. if "%cmode%" == "n" (color 7) else (color 17)
  282. set ask=d
  283. cls
  284. echo  #############################################################################
  285. echo  ###                           Restore Completed                           ###
  286. echo  #############################################################################
  287. echo  ### What will you do now?                                                 ###
  288. echo  ###                                                                       ###
  289. echo  ### (d)elete and quit                                                     ###
  290. echo  ###                                                                       ###
  291. echo  ### (m)ain Menu                                                           ###
  292. echo  ###                                                                       ###
  293. echo  ### (r)econfigure restore                                                 ###
  294. echo  ###                                                                       ###
  295. echo  ### (q)uit                                                                ###
  296. echo  ###                                                                       ###
  297. echo  #############################################################################
  298. set /P ask= Choose (default is '%ask%') :
  299. if /i %ask%==d goto delend
  300. if /i %ask%==m goto main
  301. if /i %ask%==r goto connsetrest
  302. if /i %ask%==q goto end
  303. goto restoreok
  304.  
  305. :delend
  306. del %restore%
  307. goto end
  308.  
  309. :binaryfind
  310. if EXIST "%mysqlbinpath%" (echo Found) else (echo Not Found)
  311. goto :eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement