[英]MySQLDUMP and the difference between CMD/Powershell
当我从Powershell使用此命令进行mysql dump时,我得到了一个不可用的较大文件。 当我从CMD窗口中使用相同的命令时,使用GUI工具进行导出时,我会得到一个具有相同大小的SQL文件,并且可以使用GUI以及命令行来还原备份。 使用Powershell创建转储后,它拒绝还原备份。
我使用以下命令E:\\ Script \\ mysqldump.exe -u root -ppassword -h 127.0.0.1 xticket --lock-tables --disable-keys --add-drop-table --routines --databases> \\\\ location \\ backup.sql
这是我打算使用的powershell脚本:
$Date = [Int] (Get-Date).DayOfWeek
$Su = 0
$Mo = 1
$Tu = 2
$We = 3
$Th = 4
$Fr = 5
$Sa = 6
If ($Date -eq $Mo)
{
& "E:\Script\mysqldump.exe" -u root -ppassword -h 127.0.0.1 xticket --lock-tables --disable-keys --add-drop-table --routines --databases > \\location\mobackup.sql
}
ElseIf ($Date -eq $Tu)
{
& "E:\Script\mysqldump.exe" -u root -ppassword -h 127.0.0.1 xticket --lock-tables --disable-keys --add-drop-table --routines --databases > \\location\tubackup.sql
}
ElseIf ($Date -eq $We)
{
& "E:\Script\mysqldump.exe" -u root -ppassword -h 127.0.0.1 xticket --lock-tables --disable-keys --add-drop-table --routines --databases > \\location\webackup.sql
}
ElseIf ($Date -eq $Th)
{
& "E:\Script\mysqldump.exe" -u root -ppassword -h 127.0.0.1 xticket --lock-tables --disable-keys --add-drop-table --routines --databases > \\location\thbackup.sql
}
ElseIf ($Date -eq $Fr)
{
& "E:\Script\mysqldump.exe" -u root -ppassword -h 127.0.0.1 xticket --lock-tables --disable-keys --add-drop-table --routines --databases > \\location\frbackup.sql
}
ElseIf ($Date -eq $Sa)
{
& "E:\Script\mysqldump.exe" -u root -ppassword -h 127.0.0.1 xticket --lock-tables --disable-keys --add-drop-table --routines --databases > \\location\sabackup.sql
}
ElseIf ($Date -eq $Su)
{
& "E:\Script\mysqldump.exe" -u root -ppassword -h 127.0.0.1 xticket --lock-tables --disable-keys --add-drop-table --routines --databases > \\location\subackup.sql
}
首先,您可以用一种更简单的方式重写脚本:
$dayOfWeek = (Get-Date).DayOfWeek.ToString().ToLower().substring(0, 2)
$backupFile = $dayOfWeek + "backup.sql"
& "E:\Script\mysqldump.exe" -u root -ppassword -h 127.0.0.1 xticket --lock-tables --disable-keys --add-drop-table --routines --databases | Out-File $backupFile -Encoding ASCII
请注意,我使用Out-File而不是管道传输到文件。 我怀疑您看到的行为差异是由于文件编码(ASCII / UTF8)引起的。 但是,不确定这是您的问题。 我的机器上没有安装mysqldump,我无法对其进行测试。 纯粹是猜测。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.