【发布时间】:2021-06-11 12:29:10
【问题描述】:
我想自动化数据库的设置,我想通过使用 python 脚本在 linux 终端中执行一些命令来实现。
但是在连接到mysql数据库后,我在终端中看不到任何执行命令的方式。
您可以在下面看到部分脚本:
from time import sleep
from os import system
print("Setting up the database...\n")
system("sudo mysql -u root")
sleep(2)
这会启动 mysql,之后我尝试从 python 执行的命令都没有被执行。
例如,我想运行如下命令:
system("CREATE DATABASE mydatabase;")
system("CREATE USER 'user'@'localhost' IDENTIFIED BY '[PASSWORD]';")
system("GRANT ALL PRIVILEGES ON mydatabase.* TO 'user'@'localhost';")
这可能吗?
编辑 1:@AndHeFallen 建议的潜在解决方案:
在 python 中,我创建了一个名为 db.sql 的 sql 文件,然后在终端中运行它:
with open("db.sql","w") as db:
db.write("CREATE DATABASE mydatabase;\n")
db.write("CREATE USER 'user'@'localhost' IDENTIFIED BY '[PASSWORD]';\n")
db.write("GRANT ALL PRIVILEGES ON mydatabase.* TO 'user'@'localhost';\n")
system("sudo mysql -u root < db.sql")
【问题讨论】:
-
为什么不直接从python连接mysql并通过connectiin发出语句?
-
不确定我理解你的意思。我该怎么做。
-
没有正确答案 b/c 这不是您使用任何数据库的方式。
标签: python mysql linux terminal command