Review: HeidiSQL - a front-end GUI for MySQL databases
August 31, 2008
Managing MySQL databases from the command line can be painful. You can enter only one command at a time; you can't copy and paste from previous queries. Misspell and you must start over; table data is not presented in an easy-to-view format; all requests require a great deal of typing. Etc.
MySQL cries out for a GUI, or Graphical User Interface. There are a number of these, including a set of MySQL tools built by the MySQL group themselves.
This review is of the improbably-named HeidiSQL (www.heidisql.com/), a free GUI derived from the popular and previously-free MySQL-Front, by Ansgar Becker. Indeed, Mr. Becker continues to act as team lead for development on this program. (The MySQL-Front currently available on the internet is a commercial program, and not to be confused with the earlier, free MySQL-Front.)
Despite the rather odd name, HeidiSQL is a very competent program. Unlike the MySQL GUI Tools, it integrates all MySQL interactions into a single program. And it does simply - very little command-line knowledge is required.
HeidiSQL's easy-of-use starts at log-on. Perhaps you have multiple usernames and passwords, for different combinations of databases, or for all of them. No problem - you can save all of them locally.
Store the passwords for a local development machine, if you wish. Automatically log on to your default configuration.
This takes you to a database overview - all databases specified in your log-on, with a view of database tables for the last-active database.
(Note that all screenshots have been reduced in size somewhat, to try to keep them to a more reasonable display size in this review.)
The table tab provides an easy mechanism for adding and removing fields, changing their properties, moving them up and down, etc.
The data table is very functional - click on any field to edit it. Click on column headers to sort by that header in ascending order; click a second time to reverse the order, or a third to clear. Click on multiple columns to sort by several criteria, simultaneously.
Any changes you make are logged, and therefore easily cut-and-pasted should you need to re-use any number of queries, or if you want to port them to your PHP code ...
Queries can be tested under the SQL Query tab. This is especially handy if a PHP-generated query doesn't work: echo the SQL string to the screen, copy it here, and run. You may immediately see the reason for the error, or you can edit the string and test until it does work.
Also nice: being able to copy from a SQL text dump into this field, and running, to import all or part of another table into a new one.
Easy database exports and imports and Check/Analyze/Optimize and Repair functionality help round out the program. Pressing F1 brings up the basic, but useful integrated SQL help.
Finally, the User-Manager is excellent - I find managing users and their privileges manually a royal pain. The latter makes adding/removing and editing users, and setting and resetting passwords extremely easy. You can set privileges on a per-database or global level, and get very granular, granting only 'SELECT' and 'INSERT', for example, with just a few clicks.
Despite the glowing review, HeidiSQL is not perfect. Table columns should remember their width from when they were last resized. A more informative debug functionality when a SQL query returns an error would be welcome. And MySQL table exports may refuse to load in remote phpMyAdmin sessions.
That said, I happily endorse HeidiSQL as my favorite MySQL front-end GUI/database manager.
Ars Informatica Rating: 9/10.