Solved: Debugging hints for sql plugin

Jack ostroffjh at users.sourceforge.net
Mon Dec 21 01:04:30 GMT 2020


On 2020.12.20 18:10, Jack Ostroff wrote:
> I decided to test the sql back end, but when I try to save as a mysql  
> database, I get an exception thrown that opening the database  
> failed.  So, I'm debugging in  
> kmymoney/plugins/sql/mymoneystoragesql_p.h.  I've added some  
> debugging output in createDatabase, and found something that doesn't  
> make sense to me.
> 
> After the maindb.open() fails (around line 2044,) I confirmed that  
> among other values, that maindb.userName is "jack" as it should be.   
> However, retrieving maindb.lastError.text(), I get "Access denied for  
> user ''@'localhost' to database 'mysql' QMYSQL: Unable to connect".    
> localhost is correct, as is the blank password, but where is the  
> userName?  I'm going to start digging into the code for  
> QSqlDatabase.open() but thought I'd ask first if anyone can think of  
> something I might be doing wrong.  Just to confirm, I can run mysql  
> at command line, and the database does open, so I know the db system  
> (mariadb) is running, and I do have permissions to login.
> 
This seems to actually be an accepted (if odd) behavior of MariaDB. (I  
don't know if MySQL is the same or not).  When you log in to the  
database, if your credentials are invalid, instead of just a total  
failure, it may let you in, but with privileges that only let you do or  
see what can be done or seen by someone with no privileges.  The  
nameless or anonymous user is how you are actually connected to the  
database in that case, and rather than creating the error for the  
requesting user, it creates it for the user it actually knows about.   
In this case, I don't think there is anything KMM can do, other than  
perhaps add the additional information from lastError().text() to the  
thrown exception.
In this case, it was a new installation of MariaDB, and I had not  
correctly set myself up as a new user, even though I thought I had done  
so.

Jack


More information about the KMyMoney-devel mailing list