Navicat for MySQL
Posted by David Zaslavsky on — CommentsI’m used to using PHPMyAdmin (PMA) for managing my MySQL databases. It works fine for normal maintenance, like getting rid of the spam comments that sneak through my checks (of which there are, or rather were, none), but while setting up the new version of this site, I found myself wanting to transfer the entire contents of the database to my home computer so I could tinker with it and try to figure out how to convert it to the new format I needed. PMA doesn’t really do that. Sure, it can manage multiple servers, but it treats each one separately; as far as I know the only option for transferring data is to export it to a text file and import it into the new database. I’ve never had particularly great luck with PMA’s export function, and besides, since the whole structure was changing, I needed to take the information in each table of the existing database and split it up among different tables in the new database. I briefly considered processing SQL dump files with a Perl script but it quickly became evident that that would be a mess.
So I went to my usual resource for answers, StackOverflow, and a quick search turned up several references to Navicat, a commercial database manager. I’ve been using their 30-day free trial to handle the website migration and I have to say, it’s fantastic. Probably the biggest factor is that, as a desktop application, it’s so much more responsive than PHPMyAdmin — no need to refresh the entire window (sometimes more than once) every time I perform an operation. I guess PMA could incorporate some AJAX to help their image in that respect, but still, this supports my long-held belief that web applications will never quite measure up to desktop apps. Besides that, though, Navicat’s UI is a lot less cluttered. Once you start getting used to it, it’s really easy to navigate the application and find the functions you’re looking for, without getting distracted by stuff.
Anyway, the super-useful thing about Navicat for my purpose was the Data Transfer and Data Synchronization functions. As the names suggest, they will transfer (or synchronize) data between two completely separate servers. The configuration is done with a simple dialog, and I can even save the settings to a profile so that I can easily propagate changes in the database from my server to my home computer (or vice versa) with just a couple clicks.
As a mark of how much I like this program, I almost consider it worth buying. Almost. The Linux edition of Navicat for MySQL is $79, which is not that unreasonable for a well-designed program. If you’re like me and don’t have a real job to provide that kind of funding, they do have a lite edition which lacks some advanced features but is a free download. I’m sure they don’t mind this bit of free publicity as a “tip,” though.