不管是因為設定錯誤、程式錯誤、資安問題等種種因素所導致,無法連線到使用中的 MySQL 資料庫,對任何情境來說應該都是個大麻煩吧!
尤其是如果這個 MySQL 資料庫是位於 Cloud 雲端環境中的情況下。
既然都連不上了,怎麼執行 mysqladmin flush-hosts 呢? 這可是個典型「雞生蛋,蛋生雞」的困境。
shortie 就來說說當 AWS RDS 中的 MySQL 資料庫給出這種錯誤的時候,自己是怎麼跳脫這個困境。
執行 FLUSH HOST; 敘述
如果剛巧在自己身邊未關機的電腦中,存在一個連線到拒絕連線的 RDS MySQL 資料庫,且該連線帳號有足夠的權限可以執行清除敘述,那麼我們就已經得救了!
這時候只要開啟一個 SQL 查詢視窗,然後直接執行:
FLUSH HOST;
然後,我們應該就可以從原先被拒絕的電腦,連線進入 RDS MySQL 資料庫。
執行 mysqladmin flush-hosts 命令
如果在 AWS EC2 中存在可以連線到 RDS MySQL 的應用程式,那我們可以 SSH 到該 EC2 主機,然後執行下列命令:
$ mysqladmin -h <RDS_Endpoint_URL> -P <port> -u <user> -p flush-hosts
之後,我們就可連線進入 RDS MySQL 資料庫。
重啟 RDS MySQL 資料庫
如果上面兩個方法都不可行,那就只好挑一個對線上使用者影響最小的時段,把 RDS MySQL 資料庫給重新開機,當然這時所引入的 downtime 就是必要之惡了。
這種情況下,連線進入 RDS MySQL 資料庫之後,最好保留一個連線作為之後無法連線的救援連線。接著,趕快找找看到底是甚麼情況,導致這種問題反覆發生才是正解!