I am finishing a website, which uses mysql and I would like to put it on the web.However, in order to connect to the database I have to save the host, user and password in a file.If this file is in my public_html anyone can download it and see the password.

Is it enough to save this file with password out of the public_html and set the permission just for the user?Or do I need something more?

Ideally you want your connection information to be stored below the web root. Obviously if someone were to find a vulnerability in your code and trick it into exposing the variables it would still be found out.

The best practice is to create more than one MySQL user. The user that your script logs in as should have the least possible rights. It should also a password which is unlike any other. The user should be accessible only by the "host" that the website is running on. Often this is localhost.

Then even if I make your script somehow tell me the MySQL username and password it is little use to me as I am on a different host.