Ars Informatica
August 05, 2020
Health Care Informatics
Web-based MySQL/PHP Databasing
Web Development
Favourite Software
Hardware for the Frugal Fanatic
Graphic Design and Image Processing
Free Scripts and Software
About Us
Contact Us

 Article Feed for this site

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 (, 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.

HeidiSQL log-on screen

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.

HeidiSQL database overview, showing databases, tables, and overview of table contents for selected 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.

HeidiSQL screenshot showing database table fields with properties

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.

HeidiSQL screenshot showing data in a typical database table

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 ...

screenshot of HeidiSQL log of queries executed

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.

screenshot: HeidiSQL direct SQL query entry

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.

HeidiSQL User Manager

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.

Copyright © 2020 Ars Informatica. All Rights Reserved.