"Connection for controluser as defined in your configuration failed" with phpMyAdmin in XAMPP
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?
- 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 uselocalhost
), make a note of the password, and grant the new user full control over thephpmyadmin
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 calledcreate_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.
If you got here and you are using Debian/Ubuntu (or any other dpkg based distro), execute the following command:
sudo dpkg-reconfigure phpmyadmin
The phpmyadmin package contains the script to perform this operation for you, all it needs is a user with permissions. sudo is not required if you're logged in as root, of course.
EDIT: It might be worth trying to drop the current phpmyadmin user.
Just comment out the whole "User for advanced features" and "Advanced phpMyAdmin features" code blocks in config.inc.php
.
Have you recently changed your MySQL Server root password? If answer is YES, than this is the cause of the error / warning inside phpMyAdmin console. To fix the problem, simply edit your phpMyAdmin’s config-db.php file and setup the proper database password.
First answer is messing too much in my view and second answer did not work for me. So:
In Linux-based servers the file is usually located in:
/etc/phpmyadmin/config-db.php
or:
/etc/phpMyAdmin/config-db.php
Example: (My File looked like this and I changed the user fromphpmyadmin
to admin
, the username I created for maintaining my database through phpmyadmin, and put in the appropriate password.
$dbuser='phpmyadmin';
$dbpass=''; // set current password between quotes ' '
$basepath='';
$dbname='phpmyadmin';
$dbserver='';
$dbport='';
$dbtype='mysql';
credits: http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/