If your back-end of choice is MySQL, Navicat is pretty much an essential weapon in your armoury. Recently updated to a Universal binary, Navicat does one job, and does it very well: deal with MySQL servers.
You begin by creating a connection to the MySQL server that you want to administer. Your connection can be via simple IP address or SSL connection, or over an SSH or HTTP tunnel. Once connected, you then have access to the tables within the database. Provided you have the correct admin privileges, Navicat lets you add and amend users and their privileges on a per-user, or per-user/table basis. While this is obviously just a front-end to the Grant command, being able to see it graphically makes it easier to figure out where any privilege errors may lie. Indeed, this is the joy of Navicat - no more grovelling around at the command line trying to remember the exact MySQL syntax, and no more resorting to PHPMyAdmin to muddle through it via a web browser.
Navicat makes it easy to construct queries.
ADVERTISEMENT
In the query view, the Query Builder tab lets you use drag and drop first to add tables from your database to your view, and then to drag from a field in one table to a field in another to create a join. Checkboxes within the dragged tables let you select which fields you want returned, and the sub-tab arrangement makes it straightforward to alias the output fields, and to add selection, grouping and sorting criteria. You can also choose to enter your query in plain SQL, and then switch back to the Query Builder to further refine it graphically. Once you're happy, it's off to the results pane, where you can run the query, and then view, edit, sort and export (in either csv, text, XML or DBase formats) the results. Queries can be saved for later re-use. As well as queries, you can also view the whole table and then add filters to interactively narrow down the data in front of you - filters are cumulative, but can be turned off using a checkbox.
Navicat also lets you perform database backups and synchronise both the structure and data of two different databases. Navicat supports all MySQL versions, and provided you're using the new version 5, you also get the ability to create and edit views, stored procedures and triggers. And guess what? Stored procedures can be saved, too.
The icing on the cake: Navicat's scheduling function (which is really a front-end to a UNIX crontab) lets you perform any of these saved functions automatically. It's possible, for example, to perform an unattended-sync to a remote source, run a query and export the results to an XML file. Powerful stuff.