我有一个简单的代码:
cmd = ["mysqldump", "-u Dmitriy", "-pMyPass", "dmitrii"]
p = subprocess.Popen(cmd, stdout = file)
如果我试图执行它-我得到一个错误:
mysqldump: Got error: 1045: Access denied for user ' Dmitriy'@'localhost' (using password: YES
when trying to connect.
如果我复制粘贴这个(mysqldump -u Dmitriy -pMyPass dmitrii
)到命令行-一切正常。在
有什么建议吗?在
在我的机器上,我可以通过删除-u和用户名之间的空格来修复它。在
编辑:只是想补充一些推理
列表中的每个参数都被转义。所以你的第一个命令更像是:
^{pr2}$如果您从命令行尝试这样做,您将看到它失败并返回相同的错误,而这是有效的
我想这和mysql中使用的参数解析器有关。双参数形式('-u'后跟'dmitry')将删除空白(这是有意义的)。如果你给它一个单一的形式('-u dmitry'),你就是在对它说-用户名前面有一个空白。在
相关问题 更多 >
编程相关推荐