"Connection for controluser as defined in your configuration failed" with phpMyAdmin in XAMPP
php, phpmyadmin, xampp
Solution
- Open phpMyAdmin in a browser and log in as root.
- Create a database called `phpmyadmin`
- Create a user called `pma` and set the "host" to the hostname or IP address of your web server (if the web server and MySQL are on the same box use `localhost`), make a note of the password, and grant the new user full control over the `phpmyadmin` database. It is recommended that this user does not have access to anything other than this database.
- Go to the phpMyAdmin installation directory, where you should find a sub-directory called `sql`.
- In `sql` you will find a file called `create_tables.sql`. Open it in a text editor.
- In phpMyAdmin, select the `phpmyadmin` database and click on the "SQL" tab.
- Copy/paste the entire text from `create_tables.sql` into the text box, and run the query.
Open the `config.inc.php` file in the phpMyAdmin install directory, and add the following lines (or change the existing settings if they are already there):
$cfg['Servers'][1]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][1]['controluser'] = 'pma';
$cfg['Servers'][1]['controlpass'] = '<your password>';
// Note: The list below may grow as PMA evolves and more control tables are added
// Use your common sense! Don't just blindly copypasta, look at what it means!
$cfg['Servers'][1]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][1]['relation'] = 'pma_relation';
$cfg['Servers'][1]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][1]['table_info'] = 'pma_table_info';
$cfg['Servers'][1]['column_info'] = 'pma_column_info';
$cfg['Servers'][1]['history'] = 'pma_history';
$cfg['Servers'][1]['recent'] = 'pma_recent';
$cfg['Servers'][1]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][1]['tracking'] = 'pma_tracking';
$cfg['Servers'][1]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][1]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][1]['designer_coords'] = 'pma_designer_coords';
Save and close the file.
IMPORTANT - PMA loads the config on login, evaluates it and stores it into the session data so the message will not disappear until you do this:
- Log out of phpMyAdmin and log in again
Problem solved.
Problem
I have just installed XAMPP on my Windows XP machine, and I get an error saying: Connection for controluser as defined in your configuration failed. Before I installed XAMPP, I had a MySQL database installed and it had a password. I changed and put the password in config.inc.php for MySQL, and I got this error: ``` <?php if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) { $uri = 'https://'; } else { $uri = 'http://'; } $uri .= $_SERVER['HTTP_HOST']; header('Location: '.$uri.'/xampp/'); exit; ?> ``` When I try to access index.php, it seems like something is wrong with the XAMPP installation. What can I do to fix this problem?