使用Python mysqldb模块无法使MySQL源查询工作

我有以下几行代码:

sql = "source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql"
cursor.execute (sql)

当我执行我的程序时,我收到以下错误:

Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘source C:\My Dropbox\workspace\projects\hosted_inv\create_site_db.sql’ at line 1

现在我可以将以下内容复制并发送到mysql作为查询:

source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql

它完美无缺.当我检查查询日志以查找我的脚本执行的查询时,它显示我的查询如下:

source C:\\My Dropbox\\workspace\\projects\\hosted_inv\\create_site_db.sql

但是,当我手动粘贴并执行时,整个create_site_db.sql在查询日志中展开,并显示该文件中的所有sql查询.

我在这里错过了mysqldb如何查询的内容吗?我遇到了限制吗?我的目标是运行一个sql脚本来创建模式结构,但我不想在shell进程中调用mysql来获取sql文件.

有什么想法吗?谢谢!

最佳答案
正如其他人所说,你不能在MySQLdb Python API中使用命令源

因此,不是运行它,而是加载文件并执行它

让我们说你的.sql文件了

create database test;

阅读内容,如

sql=open("test.sql").read()

然后执行它

cursor.execute(sql);

你会得到新的数据库“测试”

转载注明原文:使用Python mysqldb模块无法使MySQL源查询工作 - 代码日志