Recently few days I run into a weird problem of php not able to connect to mysql on RDS, while manual connections are fine.
So I have several php scripts sitting on our server which is hosted on EC2, and these scripts are called by the clients to communicate with a mysql server sitting on RDS. The scripts are setup so that if any connection error occurs, they would send email notification to me.
So for the recent few days I'm receiving thousands of error emails from my scripts, at the first few days the errors were simple saying the server host is not recognized, but I am sure the address is correct. And now the errors are almost all saying "Host XXX is blocked because of many connection errors, unblock with mysqladmin flush-hosts..." If I flush the hosts, the errors come back to me after a while.
What confuses me the most is that, I cannot reproduce the problem! I tried connecting to the RDS server from my EC2 server through command line and through test php scripts... They all work! If I manually invoke the scripts sending me error emails, they work too! Looking at the RDS monitor, all stat looks normal, CPU is bouncing around 50%, and plenty of hard drive space.
So I'm totally confused right now... Can anyone provide me some insight about how to solve this problem? I don't even know where to look at now...