Hi Andreas,

Thanks for coming back to me on this.

Mysql was installed from source 

        mysql 5.0.45
        ./configure --prefix=/usr/local/mysql 

I believe that that is the default install location anyway.

I ran ldd, I completely forgot about that and I get the following

          /usr/local/nagios/var # ldd /usr/local/nagios/bin/ndo2db
        linux-gate.so.1 =>  (0xffffe000)
        libz.so.1 => /lib/libz.so.1 (0x4001f000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x40030000)
        libmysqlclient.so.15 => not found
        libm.so.6 => /lib/tls/libm.so.6 (0x40045000)
        libc.so.6 => /lib/tls/libc.so.6 (0x40067000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

As you can see its not found the libmysqlclient even though it says it
has. If I run a find I can see it.

          # find / -name libmysqlclient.so.15
          /usr/local/mysql/lib/mysql/libmysqlclient.so.15

I use the following command_line to configure ndo utils

          NDO-Utils 1.4b5
          ./configure --enable-mysql
--with-mysql-lib=/usr/local/mysql/lib/mysql
--with-mysql-inc=/usr/local/mysql/include

When I run make I get the following error.

        make
        cd ./src/; make ; cd ..
        make[1]: Entering directory `/home/w/ndoutils-1.4b5/src'
        gcc -fPIC -O0 -g -DHAVE_CONFIG_H -c -o io.o io.c
        In file included from io.c:10:
        ../include/config.h:250:25: mysql/mysql.h: No such file or
directory
        ../include/config.h:251:26: mysql/errmsg.h: No such file or
directory
        make[1]: *** [io.o] Error 1
        make[1]: Leaving directory `/home/welsht2/ndoutils-1.4b5/src'

I then edit ./include/config.h to include the complete path to the mysql
libs

So I change the mysql bit of config.h 

FROM

        #define USE_MYSQL 1
        /* #undef HAVE_MYSQL */
        #ifdef USE_MYSQL
        #define HAVE_MYSQL 1
        #include <mysql/mysql.h>
        #include <mysql/errmsg.h>
        #endif

TO

        #define USE_MYSQL 1
        /* #undef HAVE_MYSQL */
        #ifdef USE_MYSQL
        #define HAVE_MYSQL 1
        #include </usr/local/mysql/include/mysql/mysql.h>
        #include </usr/local/mysql/include/mysql/errmsg.h>
        #endif

This then does a make all ok. I can see the compile go through that does
the libmysql bit


        make ndo2db-2x
        make[2]: Entering directory `/home/welsht2/ndoutils-1.4b5/src'
        gcc -O0 -g -DHAVE_CONFIG_H -c -o db.o db.c      
        gcc -O0 -g -DHAVE_CONFIG_H -D BUILD_NAGIOS_2X -c -o
dbhandlers-2x.o dbhandlers.c
        gcc -O0 -g -DHAVE_CONFIG_H -I/usr/local/mysql/include -D
BUILD_NAGIOS_2X -o ndo2db-2x ndo2db.c dbhandlers-2x.o io.o      utils.o
db.o  -L/usr/local/mysql/lib/mysql -lz  -lnsl -lmysqlclient -lm
        make[2]: Leaving directory `/home/welsht2/ndoutils-1.4b5/src'

        make ndo2db-3x
        make[2]: Entering directory `/home/welsht2/ndoutils-1.4b5/src'
        gcc -O0 -g -DHAVE_CONFIG_H -D BUILD_NAGIOS_3X -c -o
dbhandlers-3x.o dbhandlers.c
        gcc -O0 -g -DHAVE_CONFIG_H -I/usr/local/mysql/include -D
BUILD_NAGIOS_3X -o ndo2db-3x ndo2db.c dbhandlers-3x.o io.o      utils.o
db.o  -L/usr/local/mysql/lib/mysql -lz  -lnsl -lmysqlclient -lm
        make[2]: Leaving directory `/home/welsht2/ndoutils-1.4b5/src'

Any more ideas off how I can get this working. Im not very good with
hunting down software compilation problems :(

All help gratefully received

Regards

Tom

-----Original Message-----
From: Andreas Ericsson [mailto:[EMAIL PROTECTED] 
Sent: 12 September 2007 17:51
To: Welsh,T,Tom,XSL4A C
Cc: Nagios-users@lists.sourceforge.net
Subject: Re: [Nagios-users] Further problems with NDO Utils

[EMAIL PROTECTED] wrote:
> Hi Again list.
> 
> Im my continuing saga to try and get NDO Utils working I have come up 
> against another error.
> 
>       # /usr/local/nagios/bin/ndo2db -c
> /usr/local/nagios/etc/ndo2db.cfg
> 
>       /usr/local/nagios/bin/ndo2db: error while loading shared
> libraries: libmysqlclient.so.15: cannot open shared object file: No 
> such file or directory
> 
> If I check the output off ./configure I can see that it found the 
> mysqlclient libs
> 
>       checking for mysql_store_result in -lmysqlclient... yes
>       checking mysql/mysql.h usability... yes
>       checking mysql/mysql.h presence... yes
>       checking for mysql/mysql.h... yes
>       MySQL library and include file(s) were found!
> 
> Can anyone point me in the right direction please. 
> 

ldd /usr/local/nagios/bin/ndo2db

will tell you where it tries to find the libmysqlclient.so.15 library.
Creating a symlink there to where you actually keep the library should
suffice.

Did you have mysql installed in some nonstandard location when you
compiled the program? If so, the location was hardlinked into the binary
and you need to either re-compile (and tell it the new location) or move
the library back to its original position. If the new location is
shorter (strlen(path_to_new_loc) < strlen(path_to_old_loc)), you can use
a hex-editor to modify the binary to point to the new location.
Don't do this if it's the other way around though.

Good luck

-- 
Andreas Ericsson                   [EMAIL PROTECTED]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Nagios-users mailing list
Nagios-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting 
any issue. 
::: Messages without supporting info will risk being sent to /dev/null

Reply via email to