This is a classic mistake in deploying MySQL servers in stand-alone machines, deploying it in a >3GB memory 64-bit capable machine with a 32-bit linux OS. It’s quite an epidemic actually that even hosting sites are committing this “mistake”. It’s no surprise that even us suffered the same fate in our previous MySQL servers… (we have a valid reason though)
What’s wrong with 32-bit, you say?
Simply put, MySQL won’t be able to use the remaining memory at all. MySQL is a single process, 32-bit + single process = memory limit for each process is… sounds familiar?
Anyway, you can find more information from this blog [mysqlperformanceblog.com].
Just look for the AMD64 or EM64T flag.