<p>I plan on using MySQL and it's built-in encryption functionality to encrypt / decrypt certain columns in certain tables.  The concern I have is that I need to store the key somewhere.  I could certainly store the key in a file and control the permissions of that file and the permissions of the application that accesses it, but is that enough?  I could also create a web service to get the key or something.</p>

<p>I am in a small shop where I would be the only one (possibly one other person) that would have access to the machine that the application was on.  <strong>Edit:  I should add that there is a web facing part of this application that would need to decrypt the data unless I added a tier.</strong> </p>

<p>I have looked ad nauseum, but no one seems to have a bulletproof answer.</p>

<p>Is this one of those problems where you have to settle for good enough?  Given that I am using MySQL and PHP (possibly Python) is there a better way to approach this?</p>

It seems that you are considering the use of a 'column-specific' key to use with 'AES_ENCRYPT' and 'AES_DECRYPT'.  As the commenter said, this is a bad idea, because any intrusion will have access to all the data.
If you use a 'user-supplied' password, with/without a salt, you are being much more secure.
That said, if the encryption key is only readable by the application using it, you are probably 'good enough'.  If the machine is broken into, they're going to get your data faster with a single key though.