中止連接導致錯誤日誌氾濫 (Aurora 2.03 - MySQL 5.7.12)
以下是一些上下文資訊:我有一個在 Elastic Beanstalk 上執行的多租戶 WordPress MU 安裝,至少擴展到 2 個實例。這些已連接到 RDS 數據庫,並且正常執行。每個 WordPress 安裝(租戶)在共享 RDS 集群上都有一個數據庫。
這在 Aurora MySQL 5.6 中不會發生,這可能是一個線索,我只是還沒有找到答案。幾天前,我開始升級到 Aurora MySQL 5.7。我從頭開始創建了一個新集群,並且正在導入單個數據庫以逐步推出,以防出現任何問題。
RDS 集群有 1 個主實例和 1 個只讀副本,並且主實例和副本都發生錯誤。
以下是日誌範例:
2018-10-17T11:12:55.418509Z 34783 [Note] Aborted connection 34783 to db: 'unconnected' user: 'unauthenticated' host: '172.31.8.238' (Got an error reading communication packets) 2018-10-17T11:12:59.939953Z 34785 [Note] Aborted connection 34785 to db: 'unconnected' user: 'unauthenticated' host: '172.31.21.224' (Got an error reading communication packets) 2018-10-17T11:13:10.715438Z 34791 [Note] Aborted connection 34791 to db: 'unconnected' user: 'unauthenticated' host: '172.31.8.238' (Got an error reading communication packets)
IP 是 EC2 實例,因此據我所知連接不是惡意的。我將安全組設置為僅允許來自 Elastic Beanstalk 應用程序的連接。
不過我覺得
db: 'unconnected' user: 'unauthenticated'
很奇怪。數據庫似乎工作正常,但我想在將其他客戶轉移之前解決這個問題。
如果我能提供任何其他資訊,請告訴我,並提前感謝您抽出寶貴的時間。
中止的連接日誌消息由log_warnings設置控制。在 MySQL 5.6 中預設設置為 1,而在 5.7 中預設設置為 2(更詳細並顯示連接消息)
您可以比較 5.6 和 5.7 的設置說明
https://dev.mysql.com/doc/refman/5.6/en/server-options.html#option_mysqld_log-warnings
https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_log-warnings
將 Aborted connection… 等警告列印到錯誤日誌中。此選項預設啟用 (1)。要禁用它,請使用 –log-warnings=0。指定不帶級別值的選項會將目前值增加 1。建議通過將其設置為大於 0 來啟用此選項,例如,如果您使用複制(您可以獲得有關正在發生的事情的更多資訊,例如有關網路故障和重新連接)。如果該值大於 1,則將中止的連接寫入錯誤日誌,並寫入新連接嘗試的拒絕訪問錯誤。請參見第 B.5.2.11 節,“通信錯誤和中止的連接”。
只要不更改預設值,我就不會期望在 5.6 伺服器上看到連接錯誤。您可以嘗試將其設置為 2 並再次檢查日誌:
set global log_warnings=2;