python – 使用子进程导入SQL转储
发布时间:2020-12-20 12:40:23 所属栏目:Python 来源:网络整理
导读:我正在尝试通过 Python和子进程将.sql转储从磁盘导入MySQL.即相当于 mysql -u user -ppassword db dump.sql 我的Python代码看起来像这样(但我尝试了很多替代方案:)): proc = subprocess.Popen( ("mysql -u %s -p%s database" % (MYSQL_USER,MYSQL_PASSWORD)
我正在尝试通过
Python和子进程将.sql转储从磁盘导入MySQL.即相当于
mysql -u user -ppassword db < dump.sql 我的Python代码看起来像这样(但我尝试了很多替代方案:)): proc = subprocess.Popen( ("mysql -u %s -p%s database" % (MYSQL_USER,MYSQL_PASSWORD)).split(),stdin=subprocess.PIPE,stdout=subprocess.PIPE,shell=False) out,err = proc.communicate('source /tmp/dump.sql') 应用程序成功完成,但没有导入MySQL的行.我也试过像这样管道dump.sql: proc = subprocess.Popen( ("mysql -u %s -p%s database < /tmp/dump.sql" % (MYSQL_USER,err = proc.communicate() 如果重要,当我设置shell = True时,我得到ERROR 1045(28000):用户’root’@’localhost’拒绝访问(使用密码:NO)) 有谁能指出我正确的方向? 解决方法
您正在使用Popen.communicate()错误.
import subprocess proc = subprocess.Popen(["mysql","--user=%s" % USER,"--password=%s" % PASS,"database"],stdout=subprocess.PIPE) out,err = proc.communicate(file("/tmp/dump.sql").read()) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |