State and future of phpMyAdmin
phpMyAdmin is one of the most popular tools written in PHP. It is widely deployed by hosting providers for it's capabilities in MySQL management, often providing it as the only option. Even though this project is more than 10 years old, it is still alive and bringing new features to it's users. phpMyAdmin offers wide range of features, but most users use just very limited subset of them. In this article, I will introduce some existing features and provide you preview of features coming in 3.4 release.
Basic phpMyAdmin functionality is available just after installation. You
usually don't need to modify configuration file at all, because defaults
should work well on most system. In case you want to modify the configuration,
you can use convenient setup script (this links points to
installation on demo server, which allows you to generate configuration file
as well, but you can as well use the one bundled with phpMyAdmin in
directory). The recommended and default authentication method will allow you
to enter MySQL credentials and login as any user who has defined access to
Once you're inside phpMyAdmin, you can perform any operations with your MySQL database. Of course everything is limited by your privileges, so you can manage privileges of other users, if you are superuser, but this page is not shown if you are not.
As phpMyAdmin is quite complex tool, it can give you also hints about the configuration. As you can see on above screenshot, the bottom of the main page shows some such hints. In our case there are two warnings - first is about phpMyAdmin configuration storage (which will be described later) and the second tells us that our MySQL server has no root password configured, what is somewhat insecure (and unfortunately the MySQL default).
The standard database operations should be quite straightforward - you choose database and table in navigation (left for LTR languages) frame and you can operate on it in main frame. The various operations are identified by tabs, where some special tasks (like table maintenance, dropping or renaming) are grouped on Operations tab.
phpMyAdmin configuration storage
Many of advanced functionality in phpMyAdmin requires you to set up phpMyAdmin configuration storage (previously called Linked tables infrastructure). There is no magic hidden behind this, these are just few tables, which phpMyAdmin uses to store additional parameters to allow persistence of the data.
The phpMyAdmin configuration storage is currently used for following features:
- Bookmarking queries
- Applying transformations on table columns
- Adding relations to all tables (not only InnoDB where it is supported natively by MySQL).
- Interactively create database using database designer.
- Export table schema into PDF format.
- Tracking of changes you make in the table (available since 3.3).
- Permanent user preferences (available since 3.4).
You can find information how to set up the storage in phpMyAdmin documentation.
The upcoming 3.4 release will bring lot of new functionality. Some of that has been developed by core members, but many contributions were made thanks to Google Summer of Code program, where five students were working on improving phpMyAdmin. If you want to try new features, you can do that on the phpMyAdmin demo server.
The ChangeLog for 3.4 is already quite huge (probably biggest for single phpMyAdmin version ever released), so lot of work has been done. However as the changes are quite bit, it will still need time to stabilize, so you can not expect release to happen this year.
phpMyAdmin is now much faster in modern browsers, thanks to using AJAX in lot of places instead of loading whole new page. This is probably the most intrusive change made in 3.4 and at time of writing this post, there are still some rough edges, but the developers are polishing them right now.
Also there is not only AJAX, but lot of user input can be validated on client side now allowing faster reactions on invalid input.
User interface cleanup
One of long requested features was ability to change configuration for each user. And phpMyAdmin now has it. If you have configured the phpMyAdmin configuration storage, settings are permanently stored in the database, otherwise in session and optionally in web storage in your browser.
You can configure any aspect of phpMyAdmin not affecting security or server performance, like confirming DROP queries, default export settings, user interface tweaks and so on.
Improved schema export
In previous versions, it was possible to export database relational schema into PDF format. The 3.4 release comes with modular system for exporting schema adding SVG, Dia, EPS or Microsoft Visio. Especially SVG and EPS are useful for embedding schema into other documents.
As a free software project, phpMyAdmin welcomes any contributions. Even reporting bugs or feature requests will help improving the program, but most valued is helping the developers. There are always a non developer tasks like documentation or translations.