phpMyAdmin configuration storage is not completely

2020-05-29 17:28发布

问题:

I have installed xampp 5.6.14 on windows. I open phpmyadmin http://localhost/phpmyadmin/

but warning

! The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why. Or alternately go to 'Operations' tab of any database to set it up there.

! You are connected as 'root' with no password, which corresponds to the default MySQL privileged account. Your MySQL server is running with this default, is open to intrusion, and you really should fix this security hole by setting a password for user 'root'.

How to solve it?

UPDATE: I see my issue in PMA Database ... not OK in phpMyAdmin upgrade but i don't understand. When I create database with contents in "create_tables.sql" by sql query in phpmyadmin but it's error

CREATE TABLE IF NOT EXISTS `pma_users` (
  `username` varchar(64) NOT NULL,
  `usergroup` varchar(64) NOT NULL,
  PRIMARY KEY (`username`,`usergroup`)
) 
  COMMENT='Users and their assignments to user groups'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

CREATE TABLE IF NOT EXISTS `pma_usergroups` (
  `usergroup` varchar(64) NOT NULL,
  `tab` varchar(64) NOT NULL,
  `allowed` enum('Y','N') NOT NULL DEFAULT 'N',
  PRIMARY KEY (`usergroup`,`tab`,`allowed`)
) 
  COMMENT='User groups with configured menu items'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

CREATE TABLE IF NOT EXISTS `pma_navigationhiding` (
  `username` varchar(64) NOT NULL,
  `item_name` varchar(64) NOT NULL,
  `item_type` varchar(64) NOT NULL,
  `db_name` varchar(64) NOT NULL,
  `table_name` varchar(64) NOT NULL,
  PRIMARY KEY (`username`,`item_name`,`item_type`,`db_name`,`table_name`)
) 
  COMMENT='Hidden items of navigation tree'
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

Error

SQL query:

CREATE TABLE IF NOT EXISTS pma_users ( username varchar(64) NOT NULL, usergroup varchar(64) NOT NULL, PRIMARY KEY (username,usergroup) ) COMMENT='Users and their assignments to user groups' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

MySQL said: Documentation

1046 - No database selected

回答1:

resolving configuration storage problem in xampp in windows :

go to import tab in localhost/phpmyadmin and

browse xampp\phpMyAdmin\sql folder and select create_tables.sql and

then click go button

now phpmyadmin db added to your db list

now we must create user account for this db :

users tab and click add user

name : pma

password : pmapass

and click go

for privilege of this user create a file : pma_privileges.sql

with this content :

GRANT USAGE ON mysql.* TO 'pma'@'localhost';
GRANT SELECT (
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO 'pma'@'localhost';
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
ON mysql.tables_priv TO 'pma'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';

and import it by import tab

now we create db and user with privilege so now

we must add them to config.inc.php file in xampp\phpMyAdmin folder

so add these :

$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';

/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';

now restart the mysql and browser and the configuration storage error disappear and

columns after comment in creating table are visible



回答2:

The officially distributed create_tables.sql script includes a line to create and use the 'phpmyadmin' database, so perhaps XAMPP changes things.

Note that I don't use XAMPP and I expected that their installer would have set this all up for you, so there may be something wrong there that should be fixed in a more proper way, but one possible solution might be to download the official phpMyAdmin version of create_tables.sql and use that, or you could just add the following line at the top of your sql file:

CREATE DATABASE IF NOT EXISTS `phpmyadmin`
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
USE phpmyadmin;


回答3:

First in phpMyAdmin go to users -> search the user "root" and host "localhost". then select option -> edit privileges after that go to -> change password set your password for root there.

then go to xampp folder -> phpmyadmin -> config.inc.php change config to cookie. and password to your new password. $cfg['Servers'][$i]['auth_type'] = 'config'; ----> cookie $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; -----> new password(what you set for user root)



回答4:

This is what I did to enable the advanced features (using the latest version 3.4.x)

First login to phpmyadmin and create a new database called phpmadmin. When you have created the database select the import tab at the top of the page. Click the Browse/Choose file button and navigate to your phpmyadmin folder and open the scripts directory and select the create_tables.sql file. Click open to close the window. Then press Go (bottom of page). The database for the control user has been setup.

Next to setup the control user. Go to the phpmyadmin home screen and click the privileges tab. Click the add a new user link. For the username type phpmyadmin. Set anything as the password (Make sure you remember it). Choose the option to Create database with same name and grant all privileges And then click the Go button.

You have now setup the control user and the database for phpmyadmin. You now need to configure phpmyadmin. Open the config file (called config.inc.php). And remove the // from the start of the following lines

/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';

/* Storage database and tables */
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma_relation';
// $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
// $cfg['Servers'][$i]['history'] = 'pma_history';
// $cfg['Servers'][$i]['tracking'] = 'pma_tracking';
// $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
// $cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';


Make sure you set $cfg['Servers'][$i]['controluser'] to phpmyadmin and apply the password to $cfg['Servers'][$i]['controlpass']. Log out of phpmyadmin, then log back in (not as the control user). The advanced features should now be enabled.