I did it a different way. Someone can tell me if it isn't sound, but as long as no one knows my MySQL user info it has to be sound.
Regardless of how complicated this looks, it's really not and it's secure.
This works with cookies so if your browser doesn't support them then don't use this.
1] Install phpMyAdmin normally. I don't think it HAS to have the correct MySQL user info to be set up because it doesn't use it's own section of a database anymore.
2] Create a .htaccess file. Inside it, type
DirectoryIndex index.html
3] Create an index.html file in the phpMyAdmin folder. Inside this, type
<form action="index.php" method="post">
<input type="text" name="phpmyadminuser">
<br>
<input type="password" name="phpmyadminpass">
<br>
<input type="submit" name="submit">
</form>
4] Open index.php. You need to do some output buffering here, so at the very top insert this...
ob_start("callback");
if((setcookie('phpmyadminuser', $_POST['phpmyadminuser'])) &&
(setcookie('phpmyadminpass', $_POST['phpmyadminpass'])))
{
and at the bottom insert this...
<?PHP
}
else
{
print"Bugger off";
}
ob_end_flush();
?>
5] Open config.inc.php
Find the appropriate lines (around line 75 to line 81, if you are using the latest version) and replace them with the lines below:
$cfg['Servers'][$i]['controluser'] = $_COOKIE['phpmyadminuser']; // MySQL control user settings
// (this user must have read-only
$cfg['Servers'][$i]['controlpass'] = $_COOKIE['phpmyadminpass']; // access to the "mysql/user"
// and "mysql/db" tables)
$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user'] = $_COOKIE['phpmyadminuser']; // MySQL user
$cfg['Servers'][$i]['password'] = $_COOKIE['phpmyadminpass']; // MySQL password (only needed
// with 'config' auth_type)
Don't forget to test it out for any bugs, and have a friend try to crack it for you or something! You never know if you made a mistake.