from subprocess import Popen, PIPE
...
sql = sql.replace('"', '\""').replace("'", "\''")
Popen("mysql test -e \"%s\"" % (sql), shell=False, stdin=PIPE, stdout=PIPE, stderr=PIPE).communicate()
После долгих экспериментов получил, что запись происходит, только если осуществить преобразования наподобие указанных в сабже.
Но вот почему так, не могу понять.
г-да Гуру, объясните, пожалуйста.