A co-worker told me about this one... SQuirrel SQL bills itself as a "universal SQL client". At work we use Oracle and I've been happy using Oracle's SQL Developer. At home on Linux I've been searching for something to interact with MySQL. The MySQL Administrator and MySQL Query Browser tools provided by MySQL work but are lacking in features...
After using SQuirrel SQL for a few days I'm happy to report my search may be over! SQuirrel SQL is like Eclipse - it's based on Java, uses JDBC drivers to connect to your database, and it can be extended via plugins.
All the basics are here - code completion, SQL editor, auto correction, editing results, etc. Through plugins you can get table relation graphs, data import, database copy, SQL validation, syntax highlighting and more.
Since SQuirrel SQL is based on Java it's cross platform, it supports any database with a JDBC driver and is free!