Did mysqld go down, perhaps? It's never happened to me AFAIK, but it's not beyond the realm of possibility.
You can manually check on your Linode whether your MySQL server is running and accepting connections using your webapp's credentials like so:
Code:
$ mysql --user=yourusername --pass=yourpassword
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.0.24a-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| foo |
| test |
+--------------------+
3 rows in set (0.10 sec)
Where
yourusername and
yourpassword can be found in your webapp's config somewhere.
The only other likely cause I can think of would be a firewall rule blocking access to port 3306. Possibly if you have some intrusion detection system set up, perhaps something set it off and caused it to block the port.