Friday, August 26, 2011

How to enable designer view in PHPMyAdmin






Want to create relations between tables using a drag and drop GUI on PHPMyAdmin ?







This is a tutorial on how to enable designer view in PHPMyAdmin to easily manage tables and relations in between them. 

I assume you are familiar with PHPMyAdmin, GUI and already installed it on your machine. First check whether you have already enabled the designer view before going into any of the configurations.

How go to Designer view in PHPMyAdmin

Go to PHPMyAdmin and select a database (not a table). It should be something like below if you have designer view enabled. I am repeating again DO NOT select any tables.



If you can not see a tab called a "Designer". You need to configure PHPMyAdmin to enable it.

How to Configure PHPMyAdmin

  1. Open config file of your PHPMyAdmin. If you use WAMP, XAMPP or LAMP or similar distribution the config file is at
    path to the distribution\phpMyAdmin\libraries\config.default.php
  2. Edit the config file and change the following fields as shown bellow.
    $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]['designer_coords'] = 'pma_designer_coords';
  3. Create a database on phpMyAdmin named “phpmyadmin” without quotes and execute the following sql code.
    -- --------------------------------------------------------

    -- SQL Commands to set up the pmadb as described in Documentation.html.

    --

    -- DON'T RUN THIS SCRIPT ON MySQL 4.1.2 AND ABOVE!

    -- Instead, please run create_tables_mysql_4_1_2+.sql.

    --                                                

    -- This script expects the user pma to already be existing. If we would put a

    -- line here to create him too many users might just use this script and end

    -- up with having the same password for the controluser.

    --                                                    

    -- This user "pma" must be defined in config.inc.php (controluser/controlpass)                        

    --                                                 

    -- Please don't forget to set up the tablenames in config.inc.php                                

    --

    -- $Id: create_tables.sql 10257 2007-04-07 14:40:24Z lem9 $

    -- --------------------------------------------------------

    --

    -- Database : `phpmyadmin`

    --

    DROP DATABASE IF EXISTS `phpmyadmin`;

    CREATE DATABASE `phpmyadmin`;

    USE phpmyadmin;

    -- --------------------------------------------------------

    --

    -- Privileges

    --

    GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO

        'pma'@localhost;

    -- --------------------------------------------------------

    --

    -- Table structure for table `pma_bookmark`

    --

    CREATE TABLE `pma_bookmark` (

      `id` int(11) NOT NULL auto_increment,

      `dbase` varchar(255) NOT NULL default '',

      `user` varchar(255) NOT NULL default '',

      `label` varchar(255) NOT NULL default '',

      `query` text NOT NULL,

      PRIMARY KEY  (`id`)

    ) TYPE=MyISAM COMMENT='Bookmarks';

    -- --------------------------------------------------------

    --

    -- Table structure for table `pma_column_info`

    --

    CREATE TABLE `pma_column_info` (

      `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 '',

      `mimetype` varchar(255) NOT NULL default '',

      `transformation` varchar(255) NOT NULL default '',

      `transformation_options` varchar(255) NOT NULL default '',

      PRIMARY KEY  (`id`),

      UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)

    ) TYPE=MyISAM COMMENT='Column information for phpMyAdmin';

    -- --------------------------------------------------------

    --

    -- Table structure for table `pma_history`

    --

    CREATE TABLE `pma_history` (

      `id` bigint(20) unsigned NOT NULL auto_increment,

      `username` varchar(64) NOT NULL default '',

      `db` varchar(64) NOT NULL default '',

      `table` varchar(64) NOT NULL default '',

      `timevalue` timestamp(14) NOT NULL,

      `sqlquery` text NOT NULL,

      PRIMARY KEY  (`id`),

      KEY `username` (`username`,`db`,`table`,`timevalue`)

    ) TYPE=MyISAM COMMENT='SQL history for phpMyAdmin';

    -- --------------------------------------------------------

    --

    -- Table structure for table `pma_pdf_pages`

    --

    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` (`db_name`)

    ) TYPE=MyISAM COMMENT='PDF relation pages for phpMyAdmin';

    -- --------------------------------------------------------

    --

    -- Table structure for table `pma_relation`

    --

    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';

    -- --------------------------------------------------------

    --

    -- Table structure for table `pma_table_coords`

    --

    CREATE TABLE `pma_table_coords` (

      `db_name` varchar(64) NOT NULL default '',

      `table_name` varchar(64) NOT NULL default '',

      `pdf_page_number` int(11) 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';

    -- --------------------------------------------------------

    --

    -- Table structure for table `pma_table_info`

    --

    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';

    -- --------------------------------------------------------

    --

    -- Table structure for table `pma_designer_coords`

    --

    CREATE TABLE `pma_designer_coords` (

      `db_name` varchar(64) NOT NULL default '',

      `table_name` varchar(64) NOT NULL default '',

      `x` INT(11) default NULL,

      `y` INT(11) default NULL,

      `v` TINYINT(4) default NULL,

      `h` TINYINT(4) default NULL,

      PRIMARY KEY (`db_name`,`table_name`)

    ) TYPE=MyISAM COMMENT='Table coordinates for Designer'
  4. That it Now you can access the designer tab on PHPMyAdmin.
For more details refer

No comments:

Post a Comment