问题:
(bat文件如下,运行报错)
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
mysqldump -uroot -p"Jzd%0820" --databases aircrew >F:/db_backup/db_aircrew%Ymd%.sql
forfiles /p "F:\db_backup" /s /m . /d -7 /c "cmd /c del @path"
@echo on
原因分析:
1.Mysql设置了root账户访问策略,批处理程序调用cmd二次访问被拒绝。action:新增用户,设置了全部权限仍然无效。
2.bat文件所处位置不对。action:将bat放置在bin文件夹下仍无效。
3.百度mysqldump:1045错误:大部分解决方法是“密码加双引号即可”,仍然无效。
3.通过新增简单的用户和密码,发现访问正确,再仔细观察密码格式,发现密码中带有bat的特殊字符%,因此bat会将密码中的%当作特殊字符作特殊处理,至此问题解决。(转义方法:加%或者\皆不正确)