Re: [gnome-db] Provider Error on Mac OS X 10.5.8

Vivien Malerba <[email protected]>
Newsgroups gmane.comp.gnome.db
Message-ID <CAEP1ZNktna2JsnVtOrqhJ_0Kfb2yVmJwQDaDMGHp8pUFpdHc8g@mail.gmail.com>
On 7 September 2011 19:21, Patrick McEvoy <
[email protected]> wrote:

>  On 09/07/2011 02:31 AM, Vivien Malerba wrote:
>
>
>
> On 7 September 2011 02:40, Patrick McEvoy <
> [email protected]> wrote:
>
>> Hello,
>>
>> I have built libgda-4.2.8 on Mac OS X Leopard using gtk-osx but I am
>> having issues with the MySQL Provider. The machine has
>> mysql-5.5.15-osx10.5-x86.dmg installed.  When I try to connect the the
>> database I get the error "Could not open a connection to the MYSQL
>> Database.  No provider 'MySQL' found."
>>
>> I built libgda using:
>>
>> ./configure --with-mysql=yes
>> make
>> sudo make install
>>
>> For mysql ./configure has the following output:
>>
>> Configuration summary for version 4.2.8
>>   Installation prefix = /usr/local
>>   Building GTK+ UI extension: yes
>>   Building Libxslt extension: yes
>>   Building libgda GObject Introspection: no
>>   Building libgda-ui GObject Introspection: no
>>   Compiled providers:
>>      Berkeley DB = no
>>      Berkeley DB SQL = no
>>      MDB (MS Access) = no
>>      MySQL = yes
>>      Oracle = no
>>      PostgreSQL = no
>>      SQLite = yes (embedded)
>>      SQLCipher = yes
>>      JDBC = no
>>      WEB = no
>>      LDAP = yes
>>
>
> Ok, this means the configure script has found the MySQL libraries.
>
>
>>
>> And config.log has:
>>
>> configure:20511: checking for mysql_config
>> configure:20529: found /usr/local/mysql/bin/mysql_config
>> configure:20541: result: /usr/local/mysql/bin/mysql_config
>>
>> config.status:1432: creating providers/reuseable/mysql/Makefile
>> config.status:1432: creating providers/mysql/Makefile
>> config.status:1432: creating providers/mysql/libgda-mysql-4.0.pc
>>
>> ac_cv_path_MYSQL_CONFIG=/usr/local/mysql/bin/mysql_config
>>
>> MYSQL_CFLAGS='-I/usr/local/mysql/include  -Os -g -fno-common
>> -fno-strict-aliasing -arch i386'
>> MYSQL_CONFIG='/usr/local/mysql/bin/mysql_config'
>> MYSQL_FALSE='#'
>> MYSQL_LIBS='-L/usr/local/mysql/lib -lmysqlclient   -lpthread'
>> MYSQL_TRUE=''
>>
>> The output of bash-3.2$ gda-sql -L is:
>>
>>                                  Installed providers list
>> Provider  |
>> Description
>>
>>
>> ----------+------------------------------------------------------------------------------------
>> SQLite    | Provider for SQLite
>> databases
>> SQLCipher | Provider for
>> SQLCipher
>> Ldap      | Provider for database where tables are based on data
>> contained in an LDAP directory
>>
>
> As you guessed this means the MySQL (even though it was compiled can't be
> loaded).
>
>
>>
>> The output of make has these errors for sql_parser:
>>
>> /usr/bin/gcc-4.2 -o lemon ./lemon.c
>> ./lemon -q -d -T./lempar.c ./delimiter.y
>> ./lemon -d -T./lempar.c ./parser.y
>> 3 parsing conflicts.
>> make[2]: [parser.h] Error 1 (ignored)
>>
>> and for postgres, mysql, capi:
>>
>> /usr/bin/gcc-4.2 -o gen_def
>> -DIMPOSED_HEADER=\""../../../libgda/sql-parser/token_types.h"\"
>> ./gen_def.c
>> ../../../libgda/sql-parser/lemon -q -d
>> -T../../../libgda/sql-parser/lempar.c ./parser.y
>> 3 parsing conflicts.
>> make[3]: [parser.h] Error 1 (ignored)
>
>
>
> These are warning about the some states in the parser generated, you can
> ignore them (I've never been able to figure out what they are, but the
> default precedence rule makes it Ok).
>
>
>>
>> And a lot of warnings of:
>>
>> Warning: cannot load module 'mallard', using automatic detection (-a).
>>
>
> This is used for the GdaBrowser's documentation. Probably Mallard is not
> installed.
>
>
>>
>> And for make install:
>>
>> Reports the above Errors.
>>
>> Are the errors the cause of the provider issue?  Does anyone have any
>> tips on how to debug this issue?
>>
>
> From my own experience the problem is the
> /usr/local/lib/libgda-4.0/providers/libgda-mysql.dylib file can't be loaded.
> I would suggest the following:
> - make sure that file is present (it should be as the "make install" ran
> Ok)
> - set the GDA_SHOW_PROVIDER_LOADING_ERROR variable (export
> GDA_SHOW_PROVIDER_LOADING_ERROR=1) run again the "gda-sql-4.0 -L" command.
> See
> http://developer-next.gnome.org/libgda/stable/init_config.html#libgda_env_variablesfor more information.
>
> My guess is that the /usr/local/mysql/lib (the directory containing the
> MySQL DLL) is not present in the search path, and adding it like the
> following should work:
> export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
>
> Also running
> otool -L /usr/local/lib/libgda-4.0/providers/libgda-mysql.dylib
> should give you some information on what DLL the actual MySQL provider
> relies.
>
> (all the MacOSX commands and file names are from memory, so there might be
> some small mistakes, sorry).
>
> Regards,
>
> Vivien
>
>
> I tried setting DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
> and echo $DYLD_LIBRARY_PATH returned /usr/local/mysql/lib, gda-sql-4.0 -L
> listed MySQL but my application still "Could not open a connection to the
> MYSQL Database.  No provider 'MySQL' found."   I fixed it with the following
> command:
>

I don't understand how gda-sql-4.0 -L could list the MySQL provider and then
say it can't find it to open a connection...


>
> sudo install_name_tool -change libmysqlclient.18.dylib
> /usr/local/mysql/lib/libmysqlclient.18.dylib
> /usr/local/lib/libgda-4.0/providers/libgda-mysql.so
>

As I understand this command changes the  libgda-mysql.so file to have the
libMySQL DLL dependency point to a fixed path.

>
> Is this the best solution?
>

I don't know. It seems to work, but it probably won't if you move the Libgda
install from one place to another (for example in a MacOSX bundle).

You may also want to look in Libgda's git repo (as it's not distributes in
the tarball) for some scripts I had made to create a DMG bundle for the
GdaBrowser tool, see
http://git.gnome.org/browse/libgda/tree/installers/MacOSX/gda-browser

Regards,

Vivien

_______________________________________________
gnome-db-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-db-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.