import os
import subprocess
cmdline = ['mysql -u"username" -p"password" < query.sql']
p = subprocess.Popen(cmdline,stdout=subprocess.PIPE)
stdout,stderr = p.communicate()
retcode = p.wait()
그건 mysql에 연결하고 query.sql을 실행하는 코드입니다. 나에게 잘 어울리지 만 작동하지 않으며 나쁜 점은 오류 메시지가 전혀 들리지 않는다는 것입니다. retcode가 1이고 stdout에서 stderr를 사용하는 경우 mysql 표준 텍스트 "Usage mysql [OPTIONS] [Database] ..."만 표시되므로 구문이 잘못되었다고 생각합니다. 그러나 그렇지 않습니다. 터미널에서 코드 줄을 테스트 한 결과 작동합니다.서브 프로세스를 통한 mysql이 작동하지 않습니다.
파이썬은 서브 프로세스를 통해 이것을 실행하는 데 문제가 있습니까? 난이 작은 mysql 코드를 실행하는 쉬운 방법이 필요하다. 감사합니다. .
사용자 이름과 암호를 ""입력해야합니까, 아니면 질문의 서식을 지정해야합니까? 그리고 query.sql은 어디에 있습니까? 그것은 길 위에 있습니까? 'ls'을 시도해보십시오. 그리고 아마도 -u와 사용자 이름 (및 암호) 사이에 공백이 있어야합니다. – extraneon
예, 사용자 이름과 암호는 ""이어야합니다. query.sql은 python 스크립트와 같은 dir에 있습니다. -u와 사용자 이름 (및 암호) 사이의 공간이 중요합니까? 내가 테스트 할 것이다 – SandyBr