Advertisement
Guest User

Untitled

a guest
Feb 15th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. #
  2. # mysqldump.ps1
  3. #
  4.  
  5. param([String]$s='localhost', [String]$u='root', [String]$p='P@ssw0rd', [String]$out='C:\Backups')
  6.  
  7. Write-Host "mysqldump.ps1 - Tool for mysql backup of all databases in an server."
  8. Write-Host "Usage:"
  9. Write-Host " -s: [localhost] Servername or IP address"
  10. Write-Host " -u: [root] Username"
  11. Write-Host " -p: [P@ssw0rd] Password"
  12. Write-Host " -out: [localhost] Output folder to storage dumps"
  13. Write-Host ""
  14. Write-Host ""
  15.  
  16. $connectionString = 'Server=' + $s + ';Database=mysql;Uid=' + $u + ';Pwd=' + $p
  17. $date = (Get-Date).ToShortDateString().Replace('/', '')
  18. $folder = "$out\$date"
  19.  
  20. # Create folder if not exists
  21. New-Item -ItemType Directory -Force -Path $folder | Out-Null
  22.  
  23. try
  24. {
  25. # Load MySql.Data
  26. [void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")
  27. }
  28. catch
  29. {
  30. $e = $_.Exception.Message
  31. Write-Host $e
  32. exit;
  33. }
  34.  
  35. $connection = New-Object MySql.Data.MySqlClient.MySqlConnection
  36. $connection.ConnectionString = $connectionString
  37. $connection.Open()
  38.  
  39. # Check if database is closed
  40. If ($connection.State -eq "System.Data.ConnectionState.Closed")
  41. {
  42. Write-Host $e
  43. exit;
  44. }
  45.  
  46. # Get Databases from Server
  47. $q = 'SHOW DATABASES'
  48. $command = New-Object MySql.Data.MySqlClient.MySqlCommand($q, $connection)
  49. $adapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($command)
  50.  
  51. $ds = New-Object System.Data.DataSet
  52. $adapter.Fill($ds)
  53. $count = 0
  54.  
  55. # Run all database and try make a dump
  56. Write-Host "Exporting..."
  57.  
  58. foreach ($rs in $ds.Tables[0].Rows)
  59. {
  60. $db = $rs['database']
  61. $msg = ""
  62.  
  63. if ($db -eq 'information_schema' -or $db -eq 'mysql')
  64. {
  65. continue
  66. }
  67.  
  68. $exported_name = $db + "_" + $date + ".sql"
  69.  
  70. # Execute mysqldump
  71. try
  72. {
  73. &mysqldump.exe --user=$u --password=$p --result-file="$folder\$exported_name" --databases $db | Out-Null
  74. $msg = "Database OK '" + $db + "'"
  75. $count++
  76. }
  77. catch
  78. {
  79. $msg = "Database ERROR '" + $db + "'"
  80. }
  81.  
  82. Write-Host $msg
  83. }
  84.  
  85. Write-Host ""
  86. Write-Host "Total $count exported"
  87. Write-Host "Backup saved here '$folder'"
  88. Write-Host ""
  89.  
  90. # Close connection
  91. $connection.Close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement