
我購買了一個在我的 CentOS 機器上運行的程式。它是用 PHP 寫的。它使用MYSQL資料庫。
該程式的功能之一是註冊新用戶。它使用 SQL 查詢來新增使用者。我想編寫一個python程序,也可以將用戶添加到這個資料庫,但我不知道它添加了哪些屬性和表(這是一個相當大的資料庫)。
是否可以以某種方式監視該程式發送到 MYSQL 的 sql 查詢?
答案1
有兩種方法可以做到這一點,更簡單(可能不夠好)和更複雜的方法,這將給你 100% 想要的東西。
更簡單的是,在使用命令執行查詢時及時查找查詢
SHOW FULL PROCESSLIST
。這將向您顯示查詢,但如果很少執行操作(您正在尋找的 SQL 查詢),您將不得不等待很長時間並經常發出上述命令才能獲得您想要的結果。還有一個更好的方法。啟動 MySQL 並啟用日誌記錄,然後您將能夠看到 MySQL 伺服器重新啟動後的所有 SQL 查詢。這裡的問題是日誌檔案可能非常大,對於沒有經驗的人來說找到您要查找的內容可能非常耗時,但這種方法通常會更好。選項很簡單:
mysqld --log=name_of_log_file.log
就是這麼簡單。
只是一個警告:當您找到所需內容時,重新啟動 MySQL,但這次會停用日誌記錄,因為這將加快資料庫速度,並且不會佔用伺服器上的磁碟空間。
答案2
查看在任何具有 mysql 的平台上正在執行哪些 MySQL 查詢。
MySQL查詢如下,
SHOW FULL PROCESSLIST
獲取詳細資訊。SHOW PROCESSLIST
用於目前正在處理的查詢。
# mysql
在終端機中打開。
mysql> SHOW FULL PROCESSLIST;
mysql> SHOW PROCESSLIST;
有關更多文檔,請查看顯示進程列表。