Mysql

應用伺服器需要很長時間才能連接到 MySQL 伺服器

  • August 25, 2009

我有一個奇怪的問題,我想不通,想要一些專家的建議來處理這件事。

  1. 我的數據庫在單獨的機器上執行
  2. 我的應用程序伺服器嘗試連接登錄並一直等待響應
  3. 新的連接執行緒由 MySQL 創建
  4. 我的應用程序伺服器一直在等待登錄,但沒有得到任何響應
  5. 連接堆積起來,MySQL 在幾分鐘內達到最大連接數(目前設置為 100)。

問題似乎是登錄,但奇怪的是當應用程序與 MySQL 在同一台伺服器上執行時我沒有問題。也嘗試使用應用程序中的 mysql 命令,它也有同樣的問題。有什麼線索嗎?

以下是我擷取的一些過程。

+-----+----------------------+---------------------+------+---------+------+-------+------------------+
| 身份證 | 使用者 | 主持人 | 分貝 | 命令 | 時間 | 狀態 | 資訊 |
+-----+----------------------+---------------------+------+---------+------+-------+------------------+
| 6 | 根 | 本地主機 | 空 | 查詢 | 0 | 空 | 顯示程序列表 |
| 114 | 未經身份驗證的使用者 | 192.168.10.30:47534 | 空 | 連接 | | 登錄 | 空 |
| 115 | 未經身份驗證的使用者 | 192.168.10.30:47535 | 空 | 連接 | | 登錄 | 空 |
| 116 | 未經身份驗證的使用者 | 192.168.10.30:47536 | 空 | 連接 | | 登錄 | 空 |
| 117 | 未經身份驗證的使用者 | 192.168.10.30:47537 | 空 | 連接 | | 登錄 | 空 |
| 118 | 未經身份驗證的使用者 | 192.168.10.30:47539 | 空 | 連接 | | 登錄 | 空 |
| 119 | 未經身份驗證的使用者 | 192.168.10.30:47540 | 空 | 連接 | | 登錄 | 空 |
| 120 | 未經身份驗證的使用者 | 192.168.10.30:47541 | 空 | 連接 | | 登錄 | 空 |
| 121 | 未經身份驗證的使用者 | 192.168.10.30:47542 | 空 | 連接 | | 登錄 | 空 |
| 122 | 未經身份驗證的使用者 | 192.168.10.30:47543 | 空 | 連接 | | 登錄 | 空 |
| 123 | 未經身份驗證的使用者 | 192.168.10.30:47544 | 空 | 連接 | | 登錄 | 空 |
| 124 | 未經身份驗證的使用者 | 192.168.10.30:47546 | 空 | 連接 | | 登錄 | 空 |
| 125 | 未經身份驗證的使用者 | 192.168.10.30:47547 | 空 | 連接 | | 登錄 | 空 |
| 126 | 未經身份驗證的使用者 | 192.168.10.30:47548 | 空 | 連接 | | 登錄 | 空 |
| 127 | 未經身份驗證的使用者 | 192.168.10.30:47549 | 空 | 連接 | | 登錄 | 空 |
| 128 | 未經身份驗證的使用者 | 192.168.10.30:47550 | 空 | 連接 | | 登錄 | 空 |
| 129 | 未經身份驗證的使用者 | 192.168.10.30:47552 | 空 | 連接 | | 登錄 | 空 |
| 130 | 未經身份驗證的使用者 | 192.168.10.30:47553 | 空 | 連接 | | 登錄 | 空 |
| 131 | 未經身份驗證的使用者 | 192.168.10.30:47086 | 空 | 連接 | | 登錄 | 空 |
| 132 | 未經身份驗證的使用者 | 192.168.10.30:47087 | 空 | 連接 | | 登錄 | 空 |
| 133 | 未經身份驗證的使用者 | 192.168.10.30:47089 | 空 | 連接 | | 登錄 | 空 |
| 134 | 未經身份驗證的使用者 | 192.168.10.30:47090 | 空 | 連接 | | 登錄 | 空 |
| 151 | 未經身份驗證的使用者 | 192.168.10.30:47111 | 空 | 連接 | | 登錄 | 空 |
| 152 | 未經身份驗證的使用者 | 192.168.10.30:47112 | 空 | 連接 | | 登錄 | 空 |
| 153 | 未經身份驗證的使用者 | 192.168.10.30:47113 | 空 | 連接 | | 登錄 | 空 |
| 154 | 未經身份驗證的使用者 | 192.168.10.30:35053 | 空 | 連接 | | 登錄 | 空 |
| 155 | 未經身份驗證的使用者 | 192.168.10.30:35054 | 空 | 連接 | | 登錄 | 空 |
| 156 | 未經身份驗證的使用者 | 192.168.10.30:35055 | 空 | 連接 | | 登錄 | 空 |
+-----+----------------------+---------------------+------+---------+------+-------+------------------+

您可以從數據庫伺服器立即登錄嗎?如果是這樣,很可能是網路問題。

  • 這些設備之間有什麼網路硬體?
  • NIC 是否已在其他子網/連接上進行過嘗試和測試?

如果您無法快速登錄,請檢查數據庫伺服器日誌(磁碟空間不足、/tmp 目錄已滿、超時等)。

這也可能是一個 DNS 問題,儘管 20 分鐘對於 DNS 查找來說似乎太離譜了。你可以嘗試添加

跳過名稱解析

到您的 my.cnf 看看是否有幫助。

你的dns設置正確嗎?看起來您至少沒有 192.168.10.30 的反向 DNS。

或者,如果您不想/不能設置 rdns,您是否授予對“使用者名”@“192.168.10.30”的訪問權限?

引用自:https://serverfault.com/questions/58343