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, MYSQL_PASSWORD)).split(),
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
shell=False)
out, err = proc.communicate()
重要な場合、設定shell=True
するとERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
)
誰でも私を正しい方向に向けることができますか?