This happens when the phpmyadmin package is installed, but for some reason or another the automation the package manager and phpmyadmin have for setting up the phpmyadmin user, and phpmyadmin database doesn’t properly use the table schema from /usr/share. Here is the process of fixing this error for those that get it.
Create a database called phpmyadmin
create database phpmyadmin;
You can actually call the database anything as long as you remember what you changed it to later.
Create a database user
MariaDB [(none)]> GRANT ALL PRIVILEGES ON phpmyadmin.* to [email protected] identified by 'AVERYSECUREpasswordgoeshere98123123sdabcsd123' ; Query OK, 0 rows affected (0.00 sec)
Locate the create_tables.sql file copied by the package manager (or zip if installing from source)
[[email protected] phpMyAdmin]# find /usr/share | grep create_table /usr/share/phpMyAdmin/sql/create_tables.sql /usr/share/phpMyAdmin/sql/create_tables_drizzle.sql /usr/share/phpMyAdmin/libraries/display_create_table.lib.php /usr/share/phpMyAdmin/test/libraries/PMA_display_create_table_test.php
Import the database schema
# Check the file is correct [[email protected] phpMyAdmin]# vi /usr/share/phpMyAdmin/sql/create_tables.sql # Import it [[email protected] wp phpMyAdmin]# mysql -u root -p < /usr/share/phpMyAdmin/sql/create_tables.sql Enter password:
Afterwards you will need to make phpmyadmin aware of the creds in /etc/phpMyAdmin/config.inc.php
vi /etc/phpMyAdmin/confing.inc.php
Confirm your changes
[[email protected] phpMyAdmin]# cat /etc/phpMyAdmin/config.inc.php | grep -A3 phpmyadmin * wiki <http://wiki.phpmyadmin.net>. */ /* -- $cfg['Servers'][$i]['controluser'] = 'phpmyadmin'; // MySQL control user settings // (this user must have read-only $cfg['Servers'][$i]['controlpass'] = 'AVERYSECUREpasswordgoeshere98123123sdabcsd123'; // access to the "mysql/user" $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'
Your work is done, and that pesky error is gone now phpmyadmin has it’s DB. This tutorial has been a long time coming as I see this all the time.