Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python在linux终端中执行mysql命令_Python_Mysql_Linux_Terminal_Command - Fatal编程技术网

使用Python在linux终端中执行mysql命令

使用Python在linux终端中执行mysql命令,python,mysql,linux,terminal,command,Python,Mysql,Linux,Terminal,Command,我想自动化数据库的设置,我想通过使用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脚本在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:Andhefall建议的潜在解决方案:

在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")
打开(“db.sql”,“w”)作为数据库:
db.write(“创建数据库mydatabase;\n”)
db.write(“创建由“[密码]”标识的用户“用户”@“本地主机”;\n”)
write(“将mydatabase.*上的所有权限授予'user'@'localhost';\n”)
系统(“sudomysql-uroot
我认为这是不可能的。如果您想使用Python脚本与MySQL数据库交互,则需要使用api(如)直接连接到数据库。(我可能错了,但您想要的方式可能会导致安全问题)

为什么不直接从python连接到mysql并通过该连接发出语句?我不知道您的意思。我该怎么做。没有正确的答案b/c这不是您处理任何数据库的方式。我不想连接到现有数据库,我想创建一个新的数据库,并创建用户。您可以生成一个.sql文件吗?好主意,谢谢!