What’s The Best Mac Database Tool for MySQL?

Although I’ve been developing websites with MySQL for over 7 years now, until recently I had almost always used phpMyAdmin to manage my databases. phpMyAdmin is such an excellent web application and makes managing MySQL so easy that the only time I strayed was when it wasn’t available on the host server (which was very rare). When I needed a desktop MySQL client, I had turned to YourSQL, which I determined a couple of years ago was the best for me when connecting to MySQL from Mac OS X.

Update 10/24/06: In response to reader inquiries, I downloaded and tried out Navicat, and I’ve now added results for that test to the article.

For various reasons that I won’t bore readers with here, I found myself needing a Mac desktop client for MySQL again recently, so I took the opportunity to review the market once again. What surprised me most, I suppose, is how many options there are for Mac OS X users who do a little light database work. (Caveat: I am by no means a database administrator, and my knowledge of SQL and MySQL is merely sufficient to develop web applications—meaning, I can build tables, relate tables, and build queries for those tables. The tools reviewed here are from this use case alone.) In the course of testing, I tried out ten different database apps:

Aqua Data Studio CocoaMySQL DBVisualizer iSQL Viewer MySQL Query Browser Navicat PGnJ RazorSQL SQLGrinder YourSQL As might be expected, most of the database management utilities developed by commercial outfits—that is, companies mainly out to make a buck—look like ports of Windows software, and since most of them strive for cross-platform, cross-database compatibility, they tend to be written in Java (at least, the Mac and Linux clients are) with a Cocoa wrapper tacked on. Being ports of Windows GUI’s, they suffer from iconitis, a term that describes some developers’ tendency to build user interfaces from little square icons running horizontally across the top of the application window, preferably in 2 or more rows. Such developers seem to think that the more little squarish icons you have, the better. And that practice has made its way into the Java GUI world as well, unfortunately. One sees it in apps like OpenOffice, which isn’t surprising in that the developers of OpenOffice have taken Microsoft Office’s GUI as their primary design inspiration.

Although I approached the commercial applications with an open mind, genuinely anticipating that I’d discover some marvelous GUI gifts that would make my life as a MySQL developer even easier—or at least, something that would make them worth paying for—I gradually determined that they were the worst of the bunch for my needs. Not only were the user interfaces typically clunky and ugly, they weren’t as usable—either because they made me jump through unnecessary hoops to do basic tasks, or because they didn’t consider as “basic tasks” the use cases that consume my MySQL time. An example of such a basic task is the ability to edit textual information within the GUI. Except for Navicat, all of the commercial applications seemed to expect that you’d edit a paragraph or two (let alone 25 or 30) within a narrow, single-line table row, something I’ve never had to do in phpMyAdmin!

Not that this has crimped my style in managing my databases from Mac OS X. If I were developing with a commercial database product—Oracle, say—the story might be different. But since I’m working with an open-source database, it’s not surprising that some of the best tools for working with that database are themselves open source. And not only that, most of these are developed as native Cocoa applications, thereby endowing them with all the goodness that comes naturally with the Cocoa framework.

To make a long summary short, I identified two open-source apps and one commercial app that are my top choices for managing MySQL from a Mac client. I still like YourSQL, but it’s no longer my first choice—that going to an oldie but goodie, CocoaMySQL, which got considerably better this summer in the latest beta version (0.7b4). Both of these native Cocoa applications are excellent at what they do… but CocoaMySQL gets the nod primarily because it’s faster, offers a nifty console that shows all SQL queries made by both you and the interface, has a more flexible built-in search filter that makes finding specific rows a snap, and has far better export tools.

If you have $100 to budget for managing your MySQL data, you could do just as well with Navicat, a top-notch Mac OS X application (it’s also available for Windows and Linux) that has enough extras—particularly in the high-end database admin department—to make it worth a try. Though not perfect, Navicat is very good at what it does, is much better than any of the other commercial products, and provides a lot of functionality that is missing from the open-source apps (support for views, stored procedures, replication, and scheduling, and a slew of GUI “wizards” for building queries, tables, etc).

Here’s the summary table for this shootout, which will be followed by a brief walk-through each application showing a basic screenshot (click on the thumbnails to see a larger, full-window screenshot) and a few notes. The summary ratings here for “Power,” “Range,” and “Target” reflect my scores in trying out the following functions for each application: