This actually very simple to solve.
in your /etc/my.cnf or /etc/mysql/my.cnf
set these values in your [mysqld] section at the bottom:
set-variable = wait_timeout=300
set-variable = interactive_timeout=300
set-variable = max_connections=500
Also check your php scripts on your server, and I bet you will find that the one which handles your mysql connection is using the mysql_pconnect() option.
mysql_pconnect() will create a persistant connection to your mysql server. The idea behind it is that you can check to see if a connection exists, if it does, then use it. But what is happening is your script is creating a persistant connection to your mysql server, and then the next time the script is called, its nothing checking if one exists, its going and recreating a new connection.
So once 100 people have viewed the page within a certain time period, you end up with 100 persistant connections to your mysql server, and hence the "too many connections" error you are getting.
The settings above will allow for 500 connections and set the timeout of those connections to 300 seconds (I think the default is 28800 seconds).
Dave