使用 python 在 mysql 服务器上执行 sql 脚本

Execute sql scripts on mysql server using python

我有一个文件夹,其中包含必须在 MySQL 服务器上执行的 SQL 脚本。

这些脚本可以包含任何 SQL 语句。

我想自动执行这些脚本。

我更喜欢 Python。我已经做了一些初步研究,发现 MySQL 和 python 的 ODBM(MySQL-连接器,但我认为我不能将它用于此任务)

关于我应该如何解决这个问题有什么建议吗?

这适用于 MySQL 5.7 和 Python2.7 运行 Linux。作为起点,sql 脚本与服务器存储在同一台机器上。

sqlalchemy 库非常适合对数据库执行原始 SQL 语句,并且它具有动态的优势,并且与您当前使用的 DBMS 无关,因此您开发的脚本如果你愿意,可以将它应用于其他数据库(sqlalchemy 文档:https://docs.sqlalchemy.org/en/13/core/connections.html)。

要打开连接并在其上执行 SQL 命令很简单:

engine = create_engine('mysql://scott:tiger@localhost/test')
conn = engine.connect()
result = engine.execute('select * from table')

至于执行位于子目录中的SQLs,你可以像这样使用os.walk函数:

sql_files_path = '/path/to/sql/files'
for root, dirs, files in os.walk(sql_files_path):
    for f in files:
         conn.execute(f.read())

至于你决定使用 python2.7 我真的建议你改用 python3.x 因为你正处于项目的开始阶段并且对 python2.7 的支持是计划在 7 个月后结束:https://pythonclock.org/