I like to conduct my work with at least two users in mind for the best security consideration. In my situation I use and install open source cms software so every situation is different.
For the initial installation of my software, I use a user account with full priviliges (i.e., ALL: create, drop, insert, update, delete, select, index, etc.) That way my install scripts can build the database objects required to make the software installation work. Then I go back and change the user account used by the software application to something more restrictive: select, insert, update, delete ONLY.
The philosophy behind this is that the user account that the application uses should only have as minimal access as possible.
When you're coding your website, the better approach is not to mirror mysql user accounts with the user accounts created for your website. That's a bad idea. And it isn't necessary. You don't want your users logging into your database (potentially) and causing damage or havoc to your database. Imagine, if you created mysql user accounts with full access, a user can bypass your website login, login to the database directly then start dropping database tables or whatever they want.
The tried and true approach is to maintain user accounts with a user account table in your mysql database. These accounts determine what access the users will have to your website *not* to your database. You only need to code one database user for your PHP code to use. In this way, your PHP code uses the user table to validate users and only then issues queries on behalf of the users as a single database user account.