Should my database be on the same server as my web server?
There are a number of reasons as to why it is advisable to have your database exist on a separate server to your web application. 

In my opinion chief amongst these are the security implications. For instance a simplistic network architecture would see your web server in a DMZ, or public subnet, and your database server in a private subnet. The web server can accept inbound traffic from the untrusted internet (providing you are not using a load balancer etc.) whereas your database subnet only accepts inbound traffic from the public subnet. 

For more info see this similar stack overflow post here. 
The second point in the top answer around scalability is also a key argument to bare in mind.