When I have set up a new web server in the past (which is far too many times for a web developer, in my opinion), I have got the server running (whether it be IIS or Apache or both), then installed PHP and made sure PHP was running (simple phpinfo() page), then installed the database app and made sure it was running (command line or administrator), then I made sure the web server and db server were talking by installing PMA or by writing a small DB connection script.
I can't think of a reason why phpMyAdmin should need it's own database. What it looks like with following code is that you are trying to assign priviledges to the user 'root' on the database 'phpmyadmin'. But I think that 'root' has global priviledges and wouldn't require priviledges assigned for any database, let alone a phpyadmin database. It just looked odd to me.
Code: Select all
GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO
'root'@localhost;