Mastering phpMyAdmin 3.4 for Effective MySQL Management - Marc Delisle - E-Book

Mastering phpMyAdmin 3.4 for Effective MySQL Management E-Book

Marc Delisle

0,0
31,19 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

phpmyAdmin is one of the most widely used open source applications, which is written in PHP. phpMyAdmin supports a wide range of operations with MySQL. Currently, it can create and drop databases, create/drop/alter tables, delete/edit/add fields, execute any SQL statement, manage keys on fields, manage privileges, export data into various formats and is available in 52 languages.phpMyAdmin is a web-based front-end to manage MySQL databases and has been adopted by a number of Open-Source distributors.Mastering phpMyAdmin 3.4 for Effective MySQL Management is an easy-to-read, step-by-step practical guide that walks you through every facet of this legendary toolóphpMyAdminóand takes you a step ahead in taking full advantage of its potential. This book is filled with illustrative examples that will help you understand every phpMyAdmin feature in detail.This is the official guide to this popular MySQL web interface. It starts with installing and configuring phpMyAdmin, including the phpMyAdmin Configuration Storage, which is the key to its advanced features. This is followed by configuring authentication in phpMyAdmin and setting parameters that influence the interface as a whole.You will also learn some advanced features such as defining inter-table relations with the advanced Designer module. You will practice synchronizing databases on different servers and managing MySQL replication to improve performance and data security. Moreover, you will also store queries as bookmarks for their quick retrieval.In addition to it, this book helps you to learn new features introduced in version 3.4.x such as users' preferences, producing charts and the visual multi-table query builder.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 396

Veröffentlichungsjahr: 2012

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Mastering phpMyAdmin 3.4 for Effective MySQL Management
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
1. Getting Started with phpMyAdmin
PHP and MySQL: The leading open source duo
What is phpMyAdmin?
Project documentation
Installing phpMyAdmin
Required information
System requirements
Downloading the files
Installing on different platforms
Installing on a remote server using a Windows client
Installing on a local Linux server
Installing on a local Windows server (Apache, IIS)
Configuring phpMyAdmin
The config.inc.php file
Avoiding false error messages about permissions on config.inc.php
Configuration principles
Web-based setup script
Manually creating config.inc.php
Tips for editing config.inc.php on a Windows client
Description of some configuration parameters
PmaAbsoluteUri
Server-specific sections
extension
connect_type, socket, and port
compress
PersistentConnections
controluser
Installing phpMyAdmin configuration storage
Goal of the configuration storage
Location of the configuration storage
Performing the installation
Installing for a single user
Installing for multiple users
Upgrading phpMyAdmin
Summary
2. Configuring Authentication and Security
Logging in to MySQL through phpMyAdmin
Logging in to an account without a password
Authenticating a single user with config
Testing the MySQL connection
Authenticating multiple users
Authenticating with HTTP
Authenticating with cookie values
Authenticating with signon mode
Configuring for multiple server support
Defining servers in the configuration file
Authenticating through an arbitrary server
Logging out
Securing phpMyAdmin
Protecting phpMyAdmin at directory level
Displaying error messages
Protecting with IP-based access control
Defining rules
Order of interpretation for rules
Blocking root access
Protecting in-transit data
Summary
3. Over Viewing the Interface
Over viewing panels and windows
Login panels
Navigation and main panels
Home page
Views
Query window
Starting page
Customizing general settings
Configuring window title
Natural sort order for database and table names
Creating site-specific header and footer
Themes
Configuring themes
Selecting themes
Selecting a language
Slider
Restricting the list of databases
Deactivating Ajax
Character sets and collations
Effective character sets and collations
Navigation panel
Configuring the logo
Database and table list
Light mode
Tree display of database names
Table name filter
Full mode
Table abridged statistics
Table quick-access icon
Nested display of tables within a database
Counting the number of tables
Choosing from the server list
Handling many databases or tables
Limits on the interface
Improving fetch speed
Main panel
Home page
Database view
Table view
Server view
Icons for home page and menu tabs
Opening a new phpMyAdmin window
User preferences
Accessing user preferences
Possible locations for saving preferences
Saving in phpMyAdmin configuration storage
Saving in a file
Saving in the browser's local storage
Changing settings
Disallowing specific preferences
Showing developer settings
Query window
Summary
4. Creating and Browsing Tables
Creating a database
No privileges
First database creation is authorized
Creating our first table
Choosing the columns
Creating a table
Choosing keys
Inserting data manually
Data entry panel tuning for CHAR and VARCHAR
Browse mode
SQL query links
Navigation bar
Query results operations
Displaying data as a chart
Sorting results
Headwords
Color-marking rows or columns
Limiting the length of each column
Display options
Browsing distinct values
Profiling queries
Creating an additional table
Summary
5. Changing Data and Structure
Changing data
Entering edit mode
Moving to next field with the tab key
Moving with arrows
Handling NULL values
Applying a function to a value
Duplicating rows of data
Multi-row editing
Editing the next row
Inline row editing
Deleting data
Deleting a single row
Deleting multiple rows
Deleting all of the rows in a table
Deleting all rows in multiple tables
Deleting tables
Deleting databases
Changing table structure
Adding a column
Vertical mode
Editing column attribute
TEXT column type
BLOB (Binary Large Object) column type
Uploading binary content
ENUM and SET column types
DATE, DATETIME, and TIMESTAMP column types
Calendar pop up
TIMESTAMP option
Bit column type
Managing indexes
Single-column indexes
Multi-column indexes and index editing
FULLTEXT indexes
Optimizing indexes with EXPLAIN
Detecting index problems
Summary
6. Exporting Structure and Data (Backup)
Dumps, backups, and exports
Scope of the export
Exporting a database
The Table(s) sub-panel
The Output sub-panel
File name template
Choosing a character set
Kanji support
Compression
Export formats
SQL
CSV
CSV for Microsoft Excel
PDF
Microsoft Word 2000
LaTeX
XML
Open document spreadsheet
Open document text
YAML
CodeGen
Texy! text
PHP array
MediaWiki table
JSON
Exporting a table
Split-file exports
Exporting selectively
Exporting partial query results
Exporting and checkboxes
Exporting multiple databases
Saving the export file on the server
User-specific save directories
Memory limits
Summary
7. Importing Structure and Data
Limits for the transfer
Time limits
Other limits
Handling big export files
Uploading into a temporary directory
Importing SQL files
Importing CSV files
Differences between SQL and CSV formats
Exporting a test file
CSV
CSV using LOAD DATA
Requirements
Using the LOAD DATA interface
Importing other formats
Open Document Spreadsheet
XML
Reading files from a web server upload directory
Displaying an upload progress bar
Configuring APC
Summary
8. Searching Data
Single-table searches
Entering the search page
Searching criteria by column—query by example
Searching for empty / non-empty values
Producing reports with Print view
Searching with wildcard characters
Case sensitivity and search
Combining criteria
Search options
Selecting the columns to be displayed
Ordering the results
Applying a WHERE clause
Avoiding repeated results
Performing a complete database search
Restricting search to a column
Stopping an errant query
Summary
9. Performing Table and Database Operations
Maintaining a table
Changing table attributes
Table storage engine
Table comments
Table order
Table collation
Table options
Emptying or deleting a table
Renaming, moving, and copying tables
Appending data to a table
Performing other table operations
Multi-table operations
Repairing an "in use" table
Database operations
Renaming a database
Copying a database
Summary
10. Benefiting from the Relational System
Relational MySQL
InnoDB and PBXT
Defining relations with the relation view
Defining internal relations
Defining the relation
Defining the display column
Foreign key relations
Foreign keys without phpMyAdmin configuration storage
Defining relations with the Designer
Over viewing the interface
Defining relations
Defining foreign key relations
Defining the display column
Exporting for PDF schema
Benefiting from the defined relations
Foreign key information
The drop-down list of foreign keys
The browseable foreign-table window
Referential integrity checks
Automatic updates of metadata
Column commenting
Automatically migrating column comments
Summary
11. Entering SQL Statements
The SQL query box
The Database view
The Table view
The Columns selector
Clicking into the query box
The Query window
Query window options
Session-based SQL history
Database-based SQL history (permanent)
Editing queries
Multi-statement queries
Pretty printing (syntax highlighting)
The SQL Validator
System requirements
Making the Validator available
Validator results
Standard-conforming queries
Non standard-conforming queries
Summary
12. Generating Multi-table Queries
Choosing tables
Exploring column criteria
Column selector: Single column or all columns
Sorting columns
Showing a column
Updating the query
Adding conditions to the criteria box
Adjusting the number of criteria rows
Adjusting the number of criteria columns
Generating automatic joins (internal relations)
Executing the query
The visual builder
Summary
13. Synchronizing Data and Supporting Replication
Synchronizing data and structure
Goals of synchronization
Moving between the development and production servers
Collaboration between database designers
Preparing for replication
Over viewing the synchronization process
Preparing for the synchronization exercise
Choosing source and target servers and databases
Analyzing comparison results
Performing a complete synchronization
Performing a selective synchronization
Supporting MySQL replication
The Replication menu
Configuring replication
Master server configuration
Slave server configuration
Setting up a test environment
Controlling a slave server
Obtaining replication information
Gathering replication status
Replicated databases
Replicated tables
Summary
14. Using Query Bookmarks
Comparing bookmark and query history features
Creating bookmarks
Creating a bookmark after a successful query
Storing a bookmark before sending a query
Making bookmarks public
The default initial query for a table
Multi-query bookmarks
Recalling bookmarks from the bookmarks list
Executing bookmarks
Manipulating bookmarks
Passing a parameter to a bookmark
Creating a parameterized bookmark
Passing the parameter value
Summary
15. Documenting the System
Producing structure reports
Creating a printable report
The database print view
The selective database print view
The table print view
Preparing a complete report with the data dictionary
Generating relational schemas
Adding a third table to our model
Producing schema pages
Page planning
Creating a new page
Editing a page
Exporting a page for display
Changing the font in PDF schema
Laying out a schema with the Designer feature
Summary
16. Transforming Data using MIME
Browsing data without transformations
Switching display options
Enabling transformations
Configuring settings for MIME columns
Selecting the MIME type
Browser transformations
Assigning values to transformation options
Requirements for image generation
Configuring GD2 library availability verification
Asserting support of JPEG and PNG libraries
Evaluating the impact of memory limits
Examples of transformations
Clickable thumbnail (JPEG or PNG)
Adding links to an image
Date formatting
Links from text
text/plain: link
text/plain: imagelink
Preserving the original formatting
Displaying parts of a text
Displaying a download link
Hexadecimal representation
SQL pretty printing
IP address
Transforming data via external applications
External application example: In-cell sort
Summary
17. Supporting Features Added in MySQL 5
Supporting views
Creating a view from results
Main panel and views
Controlling row counting for improved performance
Supporting routines—stored procedures and functions
Creating a stored procedure
Changing the delimiter
Entering the procedure
Testing the procedure
Manipulating procedures and functions
Manually creating a function
Testing the function
Exporting stored procedures and functions
Executing code with triggers
Manually creating a trigger
Testing the trigger
Using information_schema
Partitioning
Creating a table with partitions
Maintaining partitions
Exporting a partition definition
Exploring the event scheduler
Activating the scheduler
Granting EVENT permission
Creating an event
Manipulating events
Exporting
Summary
18. Tracking Changes
Understanding the goals of the tracking system
Tracking in other software applications
Tracking in phpMyAdmin
Prerequisites
Configuring a basic tracking mechanism
Principles
Versioning
Taking a snapshot of the current structure
Understanding archiving issues
Initiating tracking for one table
Choosing the statements to be tracked
Testing the tracking mechanism
Tracking report
Determining tracking status
Deactivating and activating tracking
Structure snapshot
Exporting a version
Creating a new version
Quickly accessing tracking information
Deleting tracking information
Summary
19. Administrating the MySQL Server
Managing users and their privileges
The user overview
Exporting privileges
Privileges reload
Adding a user
Entering the username
Assigning a host value
Setting passwords
Understanding rights for database creation
Assigning global privileges
Limiting the resources used
Editing a user profile
Editing global privileges
Assigning database-specific privileges
Changing the password
Changing login information or copying a user
Removing a user
Database information
Enabling statistics
Sorting the statistics
Checking the database privileges
Dropping selected databases
Server information
Verifying server status
Server variables
Server processes
Storage engines
Available character sets and collations
Examining binary logs
Summary
A. Troubleshooting and Support
Troubleshooting
System requirements
Verifying the base configuration
Solving common errors
Seeking support
FAQs
Help forums
Creating a SourceForge account
Choosing the thread title
Reading the answers
Using the support tracker
Using the bug tracker
Environment description
Bug description
Contributing to the project
The code base
Translation updates
Patches
Index

Mastering phpMyAdmin 3.4 for Effective MySQL Management

Mastering phpMyAdmin 3.4 for Effective MySQL Management

Copyright © 2012 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: February 2012

Production Reference: 1310112

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-84951-778-2

www.packtpub.com

Cover Image by Michal Čihař (<[email protected]>)

Credits

Author

Marc Delisle

Reviewers

Madhura Jayaratne

Rouslan Placella

Lead Technical Editors

Kartikey Pandey

Meeta Rajani

Technical Editor

Kedar Bhat

Project Coordinator

Jovita Pinto

Proofreader

Mario Cecere

Indexer

Tejal Daruwale

Production Coordinator

Arvindkumar Gupta

Cover Work

Arvindkumar Gupta

About the Author

Marc Delisle was awarded "MySQL Community Member of the year 2009" because of his involvement with phpMyAdmin. He started to contribute to the project in December 1998, when he made the multi-language version. He is involved with phpMyAdmin as a developer, translator, and project administrator and enjoys meeting phpMyAdmin users in person.

Marc is a system administrator at Cegep de Sherbrooke, Québec, Canada. He lives in Sherbrooke with his wife and they enjoy spending time with their four children.

In addition to the "Mastering phpMyAdmin" successive editions, Marc has written "Creating your MySQL Database: Practical Design Tips and Techniques" and "phpMyAdmin Starter", also with Packt Publishing.

I am truly grateful to the Packt team whose sound comments were greatly appreciated during the production. My thanks also go to the reviewers of all editions; their sharp eyes helped in making this book clearer and more complete.

Finally, I wish to thank all contributors to phpMyAdmin's source code, translations, and documentation; their dedication to this project continues to push me forward.

About the Reviewers

Madhura Jayaratne is a Computer Science and Engineering graduate of University of Moratuwa. Currently he works as a software engineer and is located in Colombo, Sri Lanka.

He is a member of phpMyAdmin team and has contributed with GIS support for the software, which will be a part of its future releases. He continues to contribute by coding and translating the software.

Rouslan Placella, based in Cork, Ireland, is currently completing an Honors degree in Software Development at the Cork Institute of Technology. Born in Saint Petersbourg in 1985, his enthusiasm for programming and electronics was nurtured from a very early age. He is passionate about high performance and secure software and has been contributing to open source software with phpMyAdmin and Geeklog. During the summer of 2011 he took part in the Google Summer of Code program, where he developed an improved interface for MySQL routines, triggers, and events for phpMyAdmin. He currently also teaches Math and programming to second and third-level students.

www.PacktPub.com

Support files, eBooks, discount offers, and more

You might want to visit www.PacktPub.com for support files and downloads related to your book.

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

http://PacktLib.PacktPub.com

Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books.

Why Subscribe?

Fully searchable across every book published by PacktCopy and paste, print, and bookmark contentOn demand and accessible via web browser

Free Access for Packt account holders

If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access.

This book is dedicated to Carole, André, Corinne, Annie, and Guillaume, with all my love.

Preface

phpMyAdmin is an open source web interface that handles the administration of MySQL. It can perform various tasks such as creating, modifying, or deleting databases, tables, columns, or rows. It can also execute SQL statements or manage users and their permissions. When it comes to exploiting phpMyAdmin to its full potential, even experienced developers and system administrators search for tutorials to accomplish their tasks.

Mastering phpMyAdmin 3.4 for Effective MySQL Management is an easy-to-read, step-by-step practical guide that walks you through every facet of this legendary tool—phpMyAdmin—and takes you a step ahead in taking full advantage of its potential. This book is filled with illustrative examples that will help you understand every phpMyAdmin feature in detail.

This book jump starts with installing and configuring phpMyAdmin, and then looks into phpMyAdmin's features. This is followed by configuring authentication in phpMyAdmin and setting parameters that influence the interface as a whole, including the new user preferences feature. You will first create two basic tables and then edit, delete data, tables, and databases. As backups are crucial to a project, you will create up-to-date backups and then look into importing the data that you have exported. You will also explore the various search mechanisms and query across multiple tables.

Now you will learn some advanced features such as defining inter-table relations, both with relation view and the Designer panel. Some queries are out of the scope of the interface; you will enter SQL command to accomplish these tasks.

You will also learn about synchronizing databases on different servers and managing MySQL replication to improve performance and data security. You will also store queries as bookmarks for their quick retrieval. Towards the end of the book you will learn to document your database, track changes made to the database, and manage user accounts using phpMyAdmin server management features.

This book is an upgrade from the previous version that covered phpMyAdmin version 3.3. Version 3.4.x introduced features such as a user preferences module, relation schema export to multiple formats, an ENUM/SET column editor, a simplified interface for export and import, AJAX interface on some pages, charts generation, and a visual query builder.

What this book covers

Chapter 1, Getting Started with phpMyAdmin, gives us the reasons why we should use phpMyAdmin as a means of managing MySQL databases. It then covers the downloading and installation procedures for phpMyAdmin. Installing the phpMyAdmin configuration storage is covered as well.

Chapter 2, Configuring Authentication and Security, provides an overview of various authentication types used in phpMyAdmin. It then covers the security issues related to phpMyAdmin.

Chapter 3, Over Viewing the Interface, gives us an overview of the phpMyAdmin interface. It includes the login panel, the navigation and main panels with the Light and the Full mode, and the Query window. The new user preferences module is examined in this chapter.

Chapter 4, Creating and Browsing Tables, is all about database creation. It teaches us how to create a table, how to insert data manually, and how to sort the data. It also covers how to produce charts from data.

Chapter 5, Changing Data and Structure, covers the aspects of data editing in phpMyAdmin. It teaches us handling NULL values, multi-row editing, and data deletion. Finally it explores the subject of changing the structure of tables, with focus on editing column attributes (including the new ENUM/SET editor) and index management.

Chapter 6, Exporting Structure and Data (Backup), deals with backups and exports. It lists various ways to trigger an export, available export formats, the options associated with export formats, and the various places where the export files may be sent.

Chapter 7, Importing Structure and Data, tells us how to bring back exported data created for backup and transfer purposes. It covers the various options available in phpMyAdmin to import data, and different mechanisms involved in importing SQL files, CSV files, and other formats. Finally, it covers the limitations that may be faced while importing files, and the ways to overcome them.

Chapter 8, Searching Data, presents the mechanisms that are useful for searching data effectively, per table or inside an entire database.

Chapter 9, Performing Table and Database Operations, covers ways to perform some operations that influence and can be applied on entire tables or databases as a whole. Finally, it deals with table maintenance operations for table repair and optimization.

Chapter 10, Benefiting from the Relational System, is where we start covering advanced features of phpMyAdmin. The chapter explains how to define inter-table relations and how these relations can help us while browsing tables, entering data, or searching for it.

Chapter 11, Entering SQL Statements, helps us enter our own SQL commands. The chapter also covers the Query window—the window used to edit an SQL query. Finally, it also helps us to obtain the history of typed commands.

Chapter 12, Generating Multi-table Queries, covers the multi-table query generator, which allows us to produces these queries without actually typing them. The visual query builder is covered as well.

Chapter 13, Synchronizing Data and Supporting Replication, teaches us how to synchronize databases on the same server or from one server to another. It then covers how to manage MySQL replication.

Chapter 14, Using Query Bookmarks, covers one of the features of the phpMyAdmin configuration storage. It shows how to record bookmarks and how to manipulate them. Finally, it covers passing parameters to bookmarks.

Chapter 15, Documenting the System, gives an overview of how to produce documentation which explains the structure of the databases, using the tools offered by phpMyAdmin.

Chapter 16, Transforming Data Using MIME, explains how to apply transformations to the data in order to customize its format at view time.

Chapter 17, Supporting Features Added in MySQL 5, covers phpMyAdmin's support for the MySQL features that are new in MySQL 5.0 and 5.1, such as views, stored procedures, and triggers.

Chapter 18, Tracking Changes, teaches us how to record structure and data changes done from the phpMyAdmin interface.

Chapter 19, Administrating the MySQL Server, is about the administration of a MySQL server, focusing on user accounts and privileges. The chapter discusses how a system administrator can use phpMyAdmin's server management features for day-to-day user account maintenance, server verification, and server protection.

Appendix, Troubleshooting and Support, explains how to troubleshoot phpMyAdmin by performing simple verifications. It also explains how to interact with the development team for support, bug reports, and contributions.

What you need for this book

You need to have access to a server or workstation that has the following installed:

A web server with PHP 5.2 or laterMySQL 5.0 or later

Who this book is for

If you are a developer, system administrator, or web designer who wants to manage MySQL databases and tables efficiently, then this book is for you. This book assumes that you are already well-acquainted with MySQL basics. This book is a must read for every serious phpMyAdmin user who would like to use this outstanding application to its full power.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply send an e-mail to <[email protected]>, and mention the book title through the subject of your message.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the errata submission form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website, or added to any list of existing errata, under the Errata section of that title.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.

Chapter 1. Getting Started with phpMyAdmin

I wish you a warm welcome to this book! The goal of this first chapter is to:

Know the position of this software product in the web spectrumBe aware of all its featuresBecome proficient at installing and configuring it

PHP and MySQL: The leading open source duo

When we look at the web applications platforms currently offered by host providers, we will see that the most prevalent is the PHP/MySQL combination.

Well supported by their respective home sites— http://www.php.net, and http://www.mysql.com —this duo has enabled developers to build a lot of ready-made open source web applications, and most importantly, enabled in-house developers to quickly put in place solid web solutions.

MySQL, which is mostly compliant with the SQL:2003 standard, is a database system well known for its speed, robustness, and a small connection overhead. This is important in a web context where pages must be served as quickly as possible.

PHP, usually installed as a module inside the web server, is a popular scripting language in which applications are written to communicate with MySQL (or other database systems) on the back end and browsers on the front end. Ironically, the acronym's significance has evolved along with the web evolution, from Personal Home Page to Professional Home Page to its current recursive definition— PHP: Hypertext Preprocessor. A blog posting about the successive name changes is available at http://blog.roshambo.org/how-the-php-acronym-was-reborn. PHP is available on millions of web domains and powers famous sites such as Facebook, Yahoo!, YouTube, and Wikipedia.

What is phpMyAdmin?

phpMyAdmin (official home page at http://www.phpmyadmin.net) is a web application written in PHP; it contains (like most web applications) XHTML, CSS, and JavaScript client code. This application provides a complete web interface for administering MySQL databases, and is widely recognized as the leading application in this field.

Being open source since its birth, it has enjoyed support from numerous developers and translators worldwide (being translated into 65 languages at the time of writing this book). The project is currently hosted at SourceForge.net and developed using their facilities by the phpMyAdmin team.

Host providers everywhere are showing their trust in phpMyAdmin by installing it on their servers. The popular cPanel (a website control application) contains phpMyAdmin. In addition, we can install our own copy of phpMyAdmin on our web server as long as our provider's server satisfies with the minimum requirements (refer to the System requirements section later in this chapter).

The goal of phpMyAdmin is to offer a complete web-based management of MySQL servers and data, and to keep up with MySQL and web standards evolution. While the product is always evolving, it supports all standard operations along with extra features.

The development team constantly fine-tunes the product based on the reported bugs and requested features, releasing new versions regularly.

phpMyAdmin offers features that cover basic MySQL database and table operations. It also has an internal system that maintains metadata to support advanced features. Finally, system administrators can manage users and privileges from phpMyAdmin. It is important to note that phpMyAdmin's choice of available operations depends on the rights the user has on a specific MySQL server.

Project documentation

Further information about phpMyAdmin is available on the home site's documentation page, located at http://www.phpmyadmin.net/home_page/docs.php. Moreover, the development team, helped by the community, maintains a wiki at http://wiki.phpmyadmin.net.

Installing phpMyAdmin

It's time to install the product and to configure it minimally for first-time use.

Our reason for installing phpMyAdmin could be one of the following:

Our host provider did not install a central copyOur provider installed it but the version installed is not currentWe are working directly on our enterprise's web server

Note that we can dispense with the phpMyAdmin installation step, if we choose instead to install one of the AMP products that usually include phpMyAdmin as part of their offering. Further details are available at http://en.wikipedia.org/wiki/List_of_AMP_packages.

Required information

Some host providers offer an integrated web panel where we can manage accounts, including MySQL accounts, and also a file manager that can be used to upload web content. Depending on this, the mechanism we use to transfer phpMyAdmin source files to our web space may vary. We will need some of the following specific information before starting the installation:

The web server's name or address. Here, we will assume it to be www.mydomain.com.Our web server's account information (username, password). This information will be used either for FTP or SFTP transfer, SSH login, or web control panel login.The MySQL server's name or IP address. If this information is not available, a good alternate choice is localhost, which means that the MySQL server is located on the same machine as the web server. We will assume this to be localhost.Our MySQL server's account information (username, password).

System requirements

The up-to-date requirements for a specific phpMyAdmin version are always stated in the accompanying Documentation.html. For phpMyAdmin 3.4, the minimum PHP version required is PHP 5.2 with session support, the Standard PHP Library (SPL) and JSON support. Moreover, the web server must have access to a MySQL server (version 5.0 or later)—either locally or on a remote machine. It is strongly recommended that the PHP mcrypt extension be present for improved performance in cookie-authentication mode (more on this in Chapter 2). In fact, on a 64-bit server, this extension is required.

On the browser side, cookie support must be activated, irrespective of any authentication mode we use.

Downloading the files

There are various files available in the Download section of http://www.phpmyadmin.net. There might be more than one version offered here and it is always a good idea to download the latest stable version. We only need to download one file, which works regardless of the platform (browser, web server, MySQL, or PHP version). For version 3.4, there are two groups of files—english and all-languages. If we need only the English interface, we can download a file whose name contains english, for example, phpMyAdmin-3.4.5-english.zip. On the other hand, if we have the need for at least one other language, choosing all-languages would be appropriate.

If we are using a server supporting only PHP 4—for which the PHP team has discontinued support since 31st December, 2007—the latest stable version of phpMyAdmin is not a good choice for download. We can use version 2.11.x, which is the latest branch that supports PHP 4, although the phpMyAdmin team has discontinued supporting this version too.

The files offered have various extensions: .zip, .tar.bz2, .tar.gz, .tar.xz, and .7z. Download a file having an extension for which you have the corresponding extractor. In the Windows world, .zip is the most universal file format, although it is bigger than .gz or .bz2 (common in the Linux/Unix world). The .7z extension denotes a 7-Zip file, which is a format that achieves a higher compression ratio than the other formats offered; an extractor is available at http://www.7-zip.org. In the following examples, we will assume that the chosen file was phpMyAdmin-3.4.5-all-languages.zip.

After clicking on the appropriate file, the nearest mirror site is chosen by SourceForge.net. The file will start to download, and we can save it on our computer.

Installing on different platforms

The next step depends on the platform you are using. The following sections detail the procedures for some common platforms. You may proceed directly to the relevant section.

Installing on a remote server using a Windows client

Using the Windows Explorer, we double-click on the phpMyAdmin-3.4.5-all-languages.zip file we just downloaded on the Windows client. A file extractor should start, showing us all the scripts and directories inside the main phpMyAdmin-3.4.5-all-languages directory.

Use whichever mechanism your file extractor offers to save all the files, including sub-directories, to some location on your workstation. Here, we have chosen C:\. Therefore, a C:\phpMyAdmin-3.4.5-all-languages directory has been created by the extractor.

Now, it's time to transfer the entire directory structure C:\phpMyAdmin-3.4.5-all-languages to the web server in our web space. We use our favorite SFTP or FTP software or the web control panel for the transfer.

The exact directory under which we transfer phpMyAdmin may vary. It could be our public_html directory or another directory where we usually transfer web documents to. For further instructions about the exact directory to be used or the best way to transfer the directory structure, we can consult our host provider's help desk.

After the transfer is complete, these files can be removed from our Windows machine as they are no longer needed.

Installing on a local Linux server

Let us say we chose phpMyAdmin-3.4.5-all-languages.tar.gz and downloaded it directly to some directory on the Linux server. We move it to our web server's document root directory (for example, /var/www/html) or to one of its sub-directories (for example, /var/www/html/utilities). We then extract it with the following shell command or by using any graphical file extractor that our window manager offers:

tar -xzvf phpMyAdmin-3.4.5-all-languages.tar.gz

We must ensure that the permissions and ownership of the directory and files are appropriate for our web server. The web server user or group must be able to read them.

Installing on a local Windows server (Apache, IIS)

The procedure here is similar to that described in the Installation on a remote server using a Windows client section, except that the target directory will be under our DocumentRoot (for Apache) or our wwwroot (for IIS). Of course, we do not need to transfer anything after modifications are made to config.inc.php (described in the next section), as the directory is already on the web space.

Apache is usually run as a service. Hence, we have to ensure that the user under which the service is running has normal read privileges to access our newly created directory. The same principle applies to IIS, which uses the IUSR_machinename user. This user must have read access to the directory. You can adjust permissions in the Security/permissions tab of the directory's properties.