MySQL Administrator crashes with undefined symbol error
Q I've never been able to get MySQL Administrator to work on a Linux workstation. I've tried different workstations connecting to different servers - I enter server, username and password, click Connect and the window disappears. It's not the server, because I've tried connecting to several, and I can connect to them using MySQLAdmin on Mac OS X, but the Linux version just appears to be permanently broken. When starting it from the terminal it still crashes when I log in and tells me
lookuperror: /usr/lib/libbonoboui-2.so.0: undefined symbol:g_type_register_static_simple
I'm using Ubuntu 7.04 'out of the box' Do I need to use a different version of libbonoboui?
A Did you install mysql-gui-tools from the MySQL website or install mysql-admin via Synaptic? It seems this is an old problem that only occurs when using the MySQL download. It's still open on the MySQL bug system, where it was reported in June 2007. Most of the reports involve Ubuntu, which was at version 7.04 when this bug was reported, but it also affects 7.10. The cause appears to be a conflict between libraries included with the download and those installed on your system. This isn't a problem when using Ubuntu's own packages. If possible, uninstall the current version and start again from Synaptic.
If you want to use the MySQL download, there are a few suggestions for fixing it, not all of which work for everyone. The most complete is to build the package from source, which explains why the program works perfectly on my Gentoo systems. Less extreme solutions involve removing libraries from the MySQL Administrator install directory, causing it instead to use the system libraries, which are consistent with one another. Before you do anything like this, do not be tempted to delete libraries. You may find you need them later, so rename them instead. The first candidate is /opt/mysql-gui-tools-5.0/lib/libgobject-2.0.so.0 - rename that and try again.
If it still fails, try renaming all of the libraries in /opt/mysql-gui-tools-5.0/lib (or rename the directory) forcing the program to use only the system libraries. With the latter, you may get failures from missing libraries, in which case you should replace them one by one until everything works. That way you use only the minimum of the bundled libraries, avoiding version clashes with the system. It has also been reported that creating the empty directory /etc/mysql/conf.d helps with Ubuntu, although we were unable to verify this. This does highlight one of the drawbacks of using packages created for another system, which is why we always recommend installing from your distro's repositories wherever possible - that way someone else will already have dealt with any compatibility matters.
Follow us on Identi.ca or Twitter