I started with phpMyAdmin v2.2.0 and MySQL v3.23.41. I used gpan's update rpm for phpMyAdmin to v2.3.3pl1 and all went well. However, in phpMyAdmin I started getting the following error message with every installed database:
-----------------------------------------------
Database mysql running on localhost
PMA Database ... not OK
-----------------------------------------------
It turns out that this reflects db/tables relational features that were not active. To enable them and get rid of this error, I did the following:
USE THIS HELP AT YOUR OWN RISK. I DO NOT GUARANTEE FUNCTIONALITY OR COMPATIBILITY.
In phpMyAdmin create the following database: phpmyadmin and all related tables as follows:
(1) Login as root to phpMyAdmin
(2) Create a new database called phpmyadmin
CREATE DATABASE phpmyadmin;
Note that "controluser" must have SELECT, INSERT, UPDATE and DELETE privileges on this database. Here is a query to set up those privileges (using "phpmyadmin" as the database name, and "pma" as the controluser):
GRANT SELECT,INSERT,UPDATE,DELETE ON phpmyadmin.* to 'pma'@'localhost';
Do not give any other user rights on this database.
(3) To allow the usage of the bookmark queries functionality, create a table following this scheme:
CREATE TABLE `PMA_bookmark` (
id int(11) DEFAULT '0' NOT NULL auto_increment,
dbase varchar(255) NOT NULL,
user varchar(255) NOT NULL,
label varchar(255) NOT NULL,
query text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM COMMENT='Bookmarks';
(4) Create a special 'relation' table, which field is a key in another table (a foreign key). phpMyAdmin currently uses this to (a) make clickable, when you browse the master table, the data values that point to the foreign table; (b) display in an optional tooltip the "display field" when browsing the master table, if you move the mouse to a column containing a foreign key (use also the 'table_info' table); © display links on the table properties page, to check referential integrity (display missing foreign keys) for each described key; (d) in query-by-example, create automatic joins; (e) enable you to get a PDF schema of your database (also uses the table_coords table). The keys can be numeric or character. Create the table following this scheme:
CREATE TABLE `PMA_relation` (
`master_db` varchar(64) NOT NULL default '',
`master_table` varchar(64) NOT NULL default '',
`master_field` varchar(64) NOT NULL default '',
`foreign_db` varchar(64) NOT NULL default '',
`foreign_table` varchar(64) NOT NULL default '',
`foreign_field` varchar(64) NOT NULL default '',
PRIMARY KEY (`master_db`, `master_table`, `master_field`),
KEY foreign_field (foreign_db, foreign_table)
) TYPE=MyISAM COMMENT='Relation table';
Now as normal user open phpMyAdmin and for each one of your tables where you want to use this feature, click "Structure/Relation view/" and choose foreign fields.
(5) Create a special 'table_info' table, which field is to be displayed as a tooltip when moving the cursor over the corresponding key. This configuration variable will hold the name of this special table. Create this table following this scheme:
CREATE TABLE `PMA_table_info` (
`db_name` varchar(64) NOT NULL default '',
`table_name` varchar(64) NOT NULL default '',
`display_field` varchar(64) NOT NULL default '',
PRIMARY KEY (`db_name`, `table_name`)
) TYPE=MyISAM COMMENT='Table information for phpMyAdmin';
For each table where you want to use this feature, click "Structure/Relation view/Choose field to display" to choose the field.
(6) phpMyAdmin can create PDF pages showing the relations between your tables. To do this it needs two tables "pdf_pages" (storing information about the available pdf pages) and "table_coords" (storing coordinates where each table will be placed on a PDF schema output). You must be using the "relation" feature and have a table of PDF pages to create PDF output. Create two tables for this functionality following this scheme:
CREATE TABLE `PMA_table_coords` (
`db_name` varchar(64) NOT NULL default '',
`table_name` varchar(64) NOT NULL default '',
`pdf_page_number` int NOT NULL default '0',
`x` float unsigned NOT NULL default '0',
`y` float unsigned NOT NULL default '0',
PRIMARY KEY (`db_name`, `table_name`, `pdf_page_number`)
) TYPE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output';
CREATE TABLE `PMA_pdf_pages` (
`db_name` varchar(64) NOT NULL default '',
`page_nr` int(10) unsigned NOT NULL auto_increment,
`page_descr` varchar(50) NOT NULL default '',
PRIMARY KEY (page_nr),
KEY (db_name)
) TYPE=MyISAM COMMENT='PDF Relationpages for PMA';
(7) To store comments to describe each column for each table which will then be shown on the "printview", create a table following this scheme:
CREATE TABLE `PMA_column_comments` (
id int(5) unsigned NOT NULL auto_increment,
db_name varchar(64) NOT NULL default '',
table_name varchar(64) NOT NULL default '',
column_name varchar(64) NOT NULL default '',
comment varchar(255) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY db_name (db_name, table_name, column_name)
) TYPE=MyISAM COMMENT='Comments for Columns';
(

Now you must update the phpMyAdmin configuration file as follows:
Login as root
cd /var/www/html/phpMyAdmin-2.3.3pl1 (or wherever your phpMyAdmin 2.3.3pl1 folder is located)
You must populate the $cfg['Servers'][$i] variables with the names of the tables created above as follows:
pico –w config.inc.php
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; // Database used for Relation, Bookmark and PDF Features
// - leave blank for no support
$cfg['Servers'][$i]['bookmarktable'] = 'PMA_bookmark'; // Bookmark table - leave blank for no bookmark support
$cfg['Servers'][$i]['relation'] = 'PMA_relation'; // table to describe the relation between links (see doc)
// - leave blank for no relation-links support
$cfg['Servers'][$i]['table_info'] = 'PMA_table_info'; // table to describe the display fields
// - leave blank for no display fields support
$cfg['Servers'][$i]['table_coords'] = 'PMA_table_coords'; // table to describe the tables position for the PDF
// schema - leave blank for no PDF schema support
$cfg['Servers'][$i]['pdf_pages'] = 'PMA_pdf_pages'; // table to describe pages of relationpdf
// - leave blank if you don't want to use this
$cfg['Servers'][$i]['column_comments'] // table to store columncomments
= 'PMA_column_comments'; // - leave blank if you don't want to use this
Now you must restart the server and reload MySQL.
I hope this helps.