phpMyAdmin - HVboom/HowTo-DigitalOcean GitHub Wiki

Description

Currently phpMyAdmin can:

  • browse and drop databases, tables, views, columns and indexes
  • display multiple results sets through stored procedures or queries
  • create, copy, drop, rename and alter databases, tables, columns and indexes
  • maintain server, databases and tables, with proposals on server configuration
  • execute, edit and bookmark any SQL-statement, even batch-queries
  • load text files into tables
  • create and read dumps of tables
  • export data to various formats: CSV, XML, PDF, ISO/IEC 26300 - OpenDocument Text and Spreadsheet, Microsoft Word 2000, and LATEX formats
  • import data and MySQL structures from OpenDocument spreadsheets, as well as XML, CSV, and SQL files
  • administer multiple servers
  • manage MySQL users and privileges
  • check referential integrity in MyISAM tables
  • using Query-by-example (QBE), create complex queries automatically connecting required tables
  • create PDF graphics of your database layout
  • search globally in a database or a subset of it
  • transform stored data into any format using a set of predefined functions, like displaying BLOB-data as image or download-link
  • track changes on databases, tables and views
  • support InnoDB tables and foreign keys
  • support mysqli, the improved MySQL extension
  • create, edit, call, export and drop stored procedures and functions
  • create, edit, export and drop events and triggers
  • communicate in 62 different languages

💬 copied from package description

Setup phpMyAdmin

  • Basic ideas taken from Ubuntu setup phpMyAdmin

  • Installation

    • Variante 1: Install package

      sudo pkg install phpMyAdmin
    • Variante 2: Install from Git

      Currently (02.05.2016) no package using PHP 7.0 exists

      sudo mkdir -p /usr/local/www/phpMyAdmin
      sudo chgrp www /usr/local/www/phpMyAdmin
      
      sudo git clone https://github.com/phpmyadmin/phpmyadmin.git /usr/local/www/phpMyAdmin
      sudo bash -c 'cd /usr/local/www/phpMyAdmin; composer update --no-dev'
  • Secure installation by using an admin section with basic authentication:

    sudo mkdir -p /usr/local/www/apache24/data/admin
    sudo chmod o+rX /usr/local/www/apache24/data/admin
    cd /usr/local/www/apache24/data/admin
    sudo ln -s /usr/local/www/phpMyAdmin .
  • Configure phpMyAdmin using the sample configuration file:

    cd /usr/local/www/apache24/data/admin/phpMyAdmin
    sudo cp config.sample.inc.php config.inc.php
    sudo chgrp www config.inc.php
    • Edit the configuration file: sudo vi /usr/local/www/apache24/data/admin/phpMyAdmin/config.inc.php

      • Set the $cfg['blowfish_secret'] because we want to use cookies as our authorization method. Good keys can be generated by using this tool.

      • Disable Java error reports:

        /**
         * Should error reporting be enabled for JavaScript errors
         *
         * default = 'ask'
         */
        $cfg['SendErrorReports'] = 'never';
        
        /** 
         * Disallow users to override this setting
         */
        $cfg['UserprefsDisallow'] = array('SendErrorReports');
    • Launch phpMyAdmin

      • Add a new user phpMyAdmin to enable various phpMyAdmin features:

      • Edit the configuration again to enable all the Storage features

        • Enable the query history: $cfg['QueryHistoryDB'] = true;
        • Set number of historicized queries: $cfg['QueryHistoryMax'] = 100;
        • Enable the tracking of structure changes: $cfg['Servers'][$i]['tracking_version_auto_create'] = 'true';
      • If you login again you get following error message:

      • Follow the instructions to create the missing tables:

      • Change the character code of the phpMyAdmin tables:

  • Final configuration file config.inc.php looks like:

    <?php
    /* vim: set expandtab sw=4 ts=4 sts=4: */
    /**
     * phpMyAdmin sample configuration, you can use it as base for
     * manual configuration. For easier setup you can use setup/
     *
     * All directives are explained in documentation in the doc/ folder
     * or at <http://docs.phpmyadmin.net/>.
     *
     * @package PhpMyAdmin
     */
    
    /**
     * This is needed for cookie based authentication to encrypt password in
     * cookie
     */
    $cfg['blowfish_secret'] = <secret>; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
    
    /**
     * Servers configuration
     */
    $i = 0;
    
    /**
     * First server
     */
    $i++;
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    /* Server parameters */
    $cfg['Servers'][$i]['host'] = 'localhost';
    $cfg['Servers'][$i]['connect_type'] = 'tcp';
    $cfg['Servers'][$i]['compress'] = false;
    $cfg['Servers'][$i]['AllowNoPassword'] = false;
    
    /**
     * phpMyAdmin configuration storage settings.
     */
    
    /* User used to manipulate with storage */
    // $cfg['Servers'][$i]['controlhost'] = '';
    // $cfg['Servers'][$i]['controlport'] = '';
    $cfg['Servers'][$i]['controluser'] = 'phpMyAdmin';
    $cfg['Servers'][$i]['controlpass'] = <password>;
    
    /* 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';
    $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
    $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
    
    // Enable the tracking of structure changes
    $cfg['Servers'][$i]['tracking_version_auto_create'] = 'true';
    
    /**
     * End of servers configuration
     */
    
    /**
     * Directories for saving/loading files from server
     */
    $cfg['UploadDir'] = '';
    $cfg['SaveDir'] = '';
    
    /**
     * Whether to display icons or text or both icons and text in table row
     * action segment. Value can be either of 'icons', 'text' or 'both'.
     * default = 'both'
     */
    //$cfg['RowActionType'] = 'icons';
    
    /**
     * Defines whether a user should be displayed a "show all (records)"
     * button in browse mode or not.
     * default = false
     */
    //$cfg['ShowAll'] = true;
    
    /**
     * Number of rows displayed when browsing a result set. If the result
     * set contains more rows, "Previous" and "Next".
     * Possible values: 25, 50, 100, 250, 500
     * default = 25
     */
    //$cfg['MaxRows'] = 50;
    
    /**
     * Disallow editing of binary fields
     * valid values are:
     *   false    allow editing
     *   'blob'   allow editing except for BLOB fields
     *   'noblob' disallow editing except for BLOB fields
     *   'all'    disallow editing
     * default = 'blob'
     */
    //$cfg['ProtectBinary'] = false;
    
    /**
     * Default language to use, if not browser-defined or user-defined
     * (you find all languages in the locale folder)
     * uncomment the desired line:
     * default = 'en'
     */
    //$cfg['DefaultLang'] = 'en';
    //$cfg['DefaultLang'] = 'de';
    
    /**
     * How many columns should be used for table display of a database?
     * (a value larger than 1 results in some information being hidden)
     * default = 1
     */
    //$cfg['PropertiesNumColumns'] = 2;
    
    /**
     * Set to true if you want DB-based query history.If false, this utilizes
     * JS-routines to display query history (lost by window close)
     *
     * This requires configuration storage enabled, see above.
     * default = false
     */
    $cfg['QueryHistoryDB'] = true;
    
    /**
     * When using DB-based query history, how many entries should be kept?
     * default = 25
     */
    $cfg['QueryHistoryMax'] = 100;
    
    /**
     * Whether or not to query the user before sending the error report to
     * the phpMyAdmin team when a JavaScript error occurs
     *
     * Available options
     * ('ask' | 'always' | 'never')
     * default = 'ask'
     */
    //$cfg['SendErrorReports'] = 'always';
    $cfg['SendErrorReports'] = 'never';
    
    /** 
     * Disallow users to override this setting
     */
    $cfg['UserprefsDisallow'] = array('SendErrorReports');
    
    /**
     * You can find more configuration options in the documentation
     * in the doc/ folder or at <http://docs.phpmyadmin.net/>.
     */
⚠️ **GitHub.com Fallback** ⚠️