gda-dev does not compile
Daniel Espinosa
esodan at gmail.com
Wed Dec 13 10:40:05 EST 2006
2006/12/12, Mark Johnson <mrj001 at shaw.ca>:
> Mark Johnson wrote:
>
> >I've modified the config file as follows:
> ><?xml version="1.0"?>
> ><libgda-config>
> > <section path="/apps/libgda/Datasources/SalesTest">
> > <entry name="DSN" type="string"
> >value="URI=/home/phil/.libgda/sales_test.db"/>
> > <entry name="Description" type="string" value="Test database for
> >a sales department"/>
> > <entry name="Password" type="string" value=""/>
> > <entry name="Provider" type="string" value="SQLite"/>
> > <entry name="Username" type="string" value=""/>
> > </section>
> > <section path="/apps/libgda/Datasources/gnucash">
> > <entry name="Description" type="string" value="Test database for
> >gnucash"/>
> > <entry name="Password" type="string" value="kirk"/>
> > <entry name="Provider" type="string" value="MySQL"/>
> > <entry name="User" type="string" value="gnucash"/>
> > <entry name="Host" type="string" value="enterprise"/>
> > <entry name="DSN" type="string" value="DB_NAME=gnucash"/>
> > </section>
> ></libgda-config>
> >
> >I logged into MySql (as root) and created the user and database. I did
> >not create tables, assuming that gnucash would create them.
> >
> >I started gnucash with:
> >$ gnucash gda://gnucash
> >It indicated that the database did not seem to exist and asked if I
> >would like to create it. I clicked yes. Nothing further happened.
> >
> >The following was printed on my terminal:
> >mj at ds9:/opt/gnucash-svn15198/bin$ gnucash gda://gnucash
> >
> >
> >This is a development version. It may or may not work.
> >Report bugs and other problems to gnucash-devel at gnucash.org.
> >You can also lookup and file bug reports at http://bugzilla.gnome.org
> >The last stable version was GnuCash 2.0.2
> >The next stable version will be GnuCash 2.2
> >
> >SQL error: Can't connect to local MySQL server through socket
> >'/tmp/mysql.sock' (2)
> >SQL error: Can't connect to local MySQL server through socket
> >'/tmp/mysql.sock' (2)
> >
> >
> >
> >The unix socket file is a problem. It needs a host and port to connect
> >to my db server on another machine. (The default port is what I am
> >using here.) I had thought that the entry name for host above would
> >indicate that.
> >
> >
> >
> >
> Phil,
> I checked the gda documentation and tried adding:
> <entry name="Port" type="string" value="3306"/>
> I was thinking this might convince it to use the network socket rather
> than the unix socket file. Same result as before.
>
> I tried running gnucash under gdb to see what was being passed to gda's
> gda_client_open_connection. Here is the results:
> (gdb) break gnc-backend-gda.c:1333
> Breakpoint 1 at 0xb67a6236: file gnc-backend-gda.c, line 1333.
> (gdb) cont
> Continuing.
> Detaching after fork from child process 3591.
> [Switching to Thread -1231022400 (LWP 3583)]
>
> Breakpoint 1, gnc_gda_session_begin (be_start=0x8230f98,
> session=0x844e1b8, book_id=0x8450600 "gda://gnucash",
> ignore_lock=0, create_if_nonexistent=0) at gnc-backend-gda.c:1333
> 1333 be->pClient = gda_client_new();
> (gdb) print *book_id
> $1 = 103 'g'
> (gdb) print book_id
> $2 = (const gchar *) 0x8450600 "gda://gnucash"
> (gdb) n
> 1336 book_info = g_strdup( book_id );
> (gdb) n
> 1337 dsn = strchr( book_info, ':' );
> (gdb) print book_info
> $3 = (gchar *) 0x8231148 "gda://gnucash"
> (gdb) n
> 1338 *dsn = '\0';
> (gdb) print dsn
> $4 = (gchar *) 0x823114b "://gnucash"
> (gdb) n
> 1339 dsn += 3;
> (gdb) print dsn
> $5 = (gchar *) 0x823114b ""
> (gdb) n
> 1340 username = strchr( dsn, ':' );
> (gdb) print dsn
> $6 = (gchar *) 0x823114e "gnucash"
> (gdb) n
> 1341 if( username != NULL ) {
> (gdb) print username
> $7 = (gchar *) 0x0
> (gdb) n
> 1344 username = "";
> (gdb) n
> 1346 password = strchr( username, ':' );
> (gdb) n
> 1347 if( password != NULL ) {
> (gdb) print password
> $8 = (gchar *) 0x0
> (gdb) n
> 1350 password = "";
> (gdb) n
> 1353 be->pConnection = gda_client_open_connection( be->pClient,
> (gdb) n
> 1358 g_free( book_info );
> (gdb) n
> 1360 if( be->pConnection == NULL ) {
> (gdb) n
> 1361 printf( "SQL error: %s\n", error->message );
> (gdb) n
> 1362 qof_backend_set_error( be_start,
> ERR_BACKEND_NO_SUCH_DB );
> (gdb) cont
> Continuing.
>
> Program exited normally.
> (gdb)
>
> It appears this code is expecting a URI like this:
> gda://DSN:username:password
> And that the .libgda/config file is not used.
>
> I tried:
> $ gnucash gda://gnucash:gnucash:kirk
> But then it complained that the database gnucash:gnucash:kirk did not
> exist, and printed the errors about the socket file again.
>
> I need help connecting. I am able to run the MySql query browser and
> administrator programs from this machine, so it can definitely connect
> to the db server.
>
> Thanks,
> Mark
>
>
>
>
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>
I strongly recomend to install libgnomedb also, becouse it install a
graphical tool called "gnome-database-properties" wich you can create
the data source (DSN), the username and password to connecto to any
data base server or SQLite, and you can test the connection, even see
the tables and it's contents, and more.
It's better than try to modify the XML, I think, and error free.
The gda_open_connection, expects to have a preconfigured (and tested)
DSN with a username and password, before to call it; it's a convenient
function to quickly use GDA I'd created (more in libgda.h file), it
isn't documented yet, but I'll consider to add it, in the middle you
can see the documentation in gda-init.c file from the CVS version.
--
Trabajar, la mejor arma para tu superación
"de grano en grano, se hace la arena" (R) (entrámite, pero para los
cuates: LIBRE)
More information about the gnucash-devel
mailing list