5
votes

I am doing load libtdbcmysql1.0.0.so in a tcl script (linux), which is giving error:

couldn't load file "libmysql.so.15"

I thought libmysql.so.15 might be a dependent library for libtdbcmysql1.0.0.so, so I checked using

ldd libtdbcmysql1.0.0.so

but this command gave following output:

linux-gate.so.1 =>  (0xffffe000)<br>
libc.so.6 => /lib/libc.so.6 (0xf7da1000)<br>
/lib/ld-linux.so.2 (0x003b4000)<br>

As we can see it does not mention anything about libmysql.so.15.

Anyone can please explain what is happening here? And how to resolve this error?

1

1 Answers

1
votes

The TDBC driver for MySQL only soft-links to the main MySQL client library. This both allows the driver to be built on systems where the client library is absent (!) and ensures that more complex client library searching code can be used. (The same sort of technology is used to support other databases, such as Oracle and PostgreSQL, plus the ODBC interoperability platform. Building all of that lot on any normal system would be a total headache!)

But it can go wrong. Do you have MySQL client libraries installed at all? If so, what is the name of the dynamic library? Where is it located? You might want to file a bug report if everything is installed in the right locations, appropriate documented environment variables are set, and yet the TDBC driver still doesn't find it. (You might be able to work around this with the tdbc::odbc driver package, which I believe to be of higher quality, but I caution that I've not tried it.)