通过python访问拒绝运行mysqldump时出错

2024-09-21 03:17:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的代码:

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)到命令行-一切正常。在

有什么建议吗?在


Tags: 代码cmdaccess错误stdouterrorfilesubprocess
1条回答
网友
1楼 · 发布于 2024-09-21 03:17:09

在我的机器上,我可以通过删除-u和用户名之间的空格来修复它。在

cmd = ["mysqldump", "-uDmitriy", "-pMyPass", "dmitrii"]

编辑:只是想补充一些推理

列表中的每个参数都被转义。所以你的第一个命令更像是:

^{pr2}$

如果您从命令行尝试这样做,您将看到它失败并返回相同的错误,而这是有效的

mysqldump '-uDmitriy' '-pMyPass' 'dmitrii'

我想这和mysql中使用的参数解析器有关。双参数形式('-u'后跟'dmitry')将删除空白(这是有意义的)。如果你给它一个单一的形式('-u dmitry'),你就是在对它说-用户名前面有一个空白。在

相关问题 更多 >

    热门问题