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

Reply via email to