使用PowerShell进行MySQL转储

$mysqlpath = "C:\Program Files\MySQL\MySQL Server 5.6\bin" $backuppath = "C:\Users\Tiffany\Downloads" $username = "user" $password = "123123" $database = "db" $errorLog = "error_dump.log" $date = Get-Date $timestamp = "" + $date.day + $date.month + $date.year + "_" + $date.hour + $date.minute $backupfile = $backuppath + $database + "_" + $timestamp +".sql" CD $mysqlpath .\mysqldump.exe --user=$username --password=$password --log-error=$errorLog --result-file=$backupfile --databases $database CD $backuppath $oldbackups = gci *.sql* for($i=0; $i -lt $oldbackups.count; $i++){ if ($oldbackups[$i].CreationTime -lt $date.AddMonths(-1)){ $oldbackups[$i] | Remove-Item -Confirm:$false } } 

但是,我不断收到以下内容:

 mysqldump.exe : Warning: Using a password on the command line interface can be insecure. At C:\Users\Tiffany\Desktop\mysqldump.ps1:14 char:16 + .\mysqldump.exe <<<< --user=$username --password=$password --log-error=$errorLog --result-file=$backupfile --databases $database + CategoryInfo : NotSpecified: (Warning: Using ...an be insecure.:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError 

我是否需要设置一个标志来允许此命令行?

我会避开这个问题,并使用my.cnf来存储凭据,而不是将这些数据存储在powershell脚本中,请参阅如何在没有密码提示的情况下执行mysqldump? :

 [mysqldump] user=mysqluser password=secret 

http://dev.mysql.com/doc/refman/5.5/en/option-files.html http://dev.mysql.com/doc/refman/5.5/en/password-security-user.html

通过命令行选项交付凭证将使他们显示在进程列表中(取决于谁在查看进程列表,但仍然)。