簡體   English   中英

使用 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,之后我嘗試從 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 )直接連接到您的數據庫。 (我可能是錯的,但你想要做的方式可能會導致安全問題)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM