MySQL 啟動以來的問題
有一個奇怪的問題/(錯誤?)在這裡。使用 PHP My Admin 我通過 apt-get 在 Ubuntu 13.10 上安裝
版本如下:
- 伺服器版本:5.5.35-0ubuntu0.13.10.2 - (Ubuntu)
- Apache/2.4.6 (Ubuntu)
- 數據庫客戶端版本:libmysql - 5.5.35
- PHP 擴展:mysqli 文件
- PHPMyAdmin 版本資訊:4.0.6deb1
在 Stats 頁面下,它顯示以下內容:
- 自啟動以來的問題:2,144
- 每小時:405
- 每分鐘:7
這是奇怪的事情 - 大約 5 分鐘前,它說自啟動以來有 5000 多個問題。
除了我為 PHP 頁面創建的“WWW 使用者”之外,我是唯一可以訪問數據庫的使用者。我的 Web 伺服器未向公眾開放 - 埠 80 在我的路由器上被阻止,並且我在 Apache2.conf 文件中設置了密碼保護。為了實時訪問我的 LAMP 伺服器,我使用 ConnectBot for Android 將埠 8080 隧道連接到我電腦的埠 80。我每小時沒有執行 405 個查詢!在過去的一個小時內,我可能最多只在數據庫上執行了 20 次,包括 PHP 腳本進行的查詢。除了我之外的其他人可以訪問我的 LAMP 伺服器的唯一方法是,如果他們使用 wifi 嗅探器並複製他們的 MAC 地址以繞過 MAC 過濾以通過我的路由器 - 但我的路由器沒有顯示任何異常連接。
此外 - 它顯示了以下內容,這真的讓我擔心:
show binlogs 73 13.8 3.40 show tables 34 6.4 1.59 show variables 28 5.3 1.31 show master status 27 5.1 1.26 show status 27 5.1 1.26 show slave status 27 5.1 1.26
除了顯示表,我不知道這些命令存在。我已經好幾天沒有執行 show tables 命令了。
有人入侵了我的數據庫嗎?還是 PHPMyAdmin 報告的資訊不准確?
您可能沒有意識到這一點,但在 MySQL 中所做的一切及其祖母都是一個問題。
鑑於此,真正的問題是:對於 mysqld,什麼是 Question ?
根據關於問題的 MySQL 文件:
伺服器執行的語句數。與 Queries 變數不同,這僅包括客戶端發送到伺服器的語句,而不包括在儲存程序中執行的語句。此變數不計算 COM_PING、COM_STATISTICS、COM_STMT_PREPARE、COM_STMT_CLOSE 或 COM_STMT_RESET 命令。
為了執行查詢或只是檢查某種狀態而發出的任何內容都是一個問題。即使檢查您的會話中有多少問題本身也是一個問題。這是證明:(我將連接到 MySQL 5.6.14 for Windows 並在我的會話中提問):
微軟Windows
$$ Version 6.2.9200 $$ (c) 2012 年微軟公司。版權所有。
C:\Windows\system32>mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.14 MySQL Community Server (GPL) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show status like 'Questions'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Questions | 3 | +---------------+-------+ 1 row in set (0.11 sec) mysql> show status like 'Questions'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Questions | 4 | +---------------+-------+ 1 row in set (0.00 sec) mysql> show status like 'Questions'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Questions | 5 | +---------------+-------+ 1 row in set (0.00 sec) mysql>
這是正常的預期,所以沒有什麼可擔心的。
您的原始問題
有人入侵了我的數據庫嗎?
不,您沒有被黑客入侵。
PHPMyAdmin 是否報告了不准確的資訊?
PHPMyAdmin 一整天都在詢問 mysqld 問題。結果是它只是執行了全域計數(從 中可以看出
SHOW GLOBAL STATUS;
)。大約 2.5 年前,我在 ServerFault 上寫了一篇題為24 天內 10 億次 mysql 查詢的文章的答案?有什麼不對嗎?. 我將失控的統計數據歸因於當時的監控,現在我仍然強烈主張這一點。