簡體   English   中英

通過python運行mysqldump時出錯-拒絕訪問

[英]Error running mysqldump via python - access denied

我有這個簡單的代碼:

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和用戶名之間的空格來修復它。

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

編輯:只是想添加一些推理

列表中的每個參數都被轉義。 所以您的第一個命令更像是:

mysqldump '-u Dmitriy' '-pMyPass' 'dmitrii'

如果您在命令行中嘗試該操作,則會看到它失敗並顯示相同的錯誤,而這可行

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

我想這與mysql中使用的參數解析器有關。 兩個參數形式(“ -u”后跟“ Dmitriy”)將去除空格(這很有意義)。 如果您給它一個單一的形式('-u Dmitriy'),那是對它說的-用戶名前面有一個空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM