使用 Python 在 linux 终端中执行 mysql 命令
Execute mysql commands in linux terminal using Python
我想自动设置数据库,我想通过使用 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,然后 none 我尝试从 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 数据库交互,您需要使用 api 直接连接到您的数据库,例如 MySQLdb。 (我可能是错的,但你想做的方式可能会导致安全问题)
我想自动设置数据库,我想通过使用 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,然后 none 我尝试从 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 数据库交互,您需要使用 api 直接连接到您的数据库,例如 MySQLdb。 (我可能是错的,但你想做的方式可能会导致安全问题)