使用 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/
我有一个文件夹,其中包含必须在 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/