XOJO MariaDB working versions

+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for fsStats@127.0.0.1                                                                                                                                                                                                                                              |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `fsStats`@`127.0.0.1` IDENTIFIED BY PASSWORD '....'                                                                                                                                                            |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `prod\_global\_config`.* TO `fsStats`@`127.0.0.1` WITH GRANT OPTION |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for fsStats@localhost                                                                                                                                                                                                                                              |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `fsStats`@`localhost` IDENTIFIED BY PASSWORD '.....'                                                                                                                                                            |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `prod\_global\_config`.* TO `fsStats`@`localhost` WITH GRANT OPTION |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Reapply the password on both just in case

ALTER USER `fsStat`@`localhost` IDENTIFIED BY 'the password here';
ALTER USER `fsStat`@`127.0.0.1` IDENTIFIED BY 'the password here';

honestly i quit, a day lost for something that does not work, always issues , i did the code in 5 min in python and works smooth . i wish XOJO was same. :slightly_frowning_face:

So probably Xojo needs to update its DB client plugin, probably something changed at the protocol level and Xojo is using old client code.

1 Like

Iā€™ve inspected a Xojo test code for Windows here, and I see it uses the old client lib version 5.7.35. This 5.7 series started in 2015 and the last one is 5.7.42.

Butā€¦ If you check the FAQā€¦

Which version of libmysql should I use?

For MySQL 8.0, 5.7, 5.6, and 5.5, we recommend libmysql 8.0.


So I extremely recommend Xojo to jump from the 2015 series right to the 2023 current libmysql 8 (first GA is from 2018), also update Xojo OpenSSL to the version 1.1.1t used by this client and allow us use the long due TLS1.3

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-33.html

Well sadly this is not new, it is an old issue that iā€™m struggling for some time but each time i open a thread it gets either ignored or replies are not helping, i see more and more that i try to use XOJO and sadly i end up using other languages just because XOJO simply cannot do the job for things that should be there Iā€™m a PRO license user for a long time but i can hardly use it for the past 2 years just because of that. so i guess thinking that is time to renew it only when it is really worth it . So far i see William updating drivers and packges on it but still there is a lot to go. Sadly without those that are essential, without unicode for RTL languages XOJO is simply useless to me.

Sad but true. Hopefully maybe you could come with details and add to the bugs maybe in this way the folks from xojo focus where it is really needed and not on pixels and other funny things.

#73318 i put here the bug but as i got tired i stopped and did not update anything anymore, i guess your feedback would help

And maybe keep in mind that i use MariaDB and not MySQL i guess most of the people moved from MySQL in favor for MariaDB due to the mess they had and licensing issues i assume

Thanks again.

Iā€™ve added info there. Also explained that the problem is not isolated to MariaDB but even older to the current MySQL series (generation 8) are also affected by lots of problems already addressed that Xojo is lacking behind for years.

https://dev.mysql.com/doc/refman/8.0/en/faqs-c-api.html

https://dev.mysql.com/doc/c-api/8.0/en/c-api-implementations.html

1 Like

thanks a lot , hopefully someone from XOJO will have a look .

1 Like

@Aurelian_N

Is it possible that you have something already bound to port 3307 on that second server? Perhaps another MySQL or MariaDB instance? Thatā€™s the only thing I can think of being the issue here.

Perhaps you should make the tunnel and try setting the local port to something other than 3307 (or whatever youā€™re using)

The connection is done, the authentication fails. So not a port problem, but a protocol problem.

We had a similar problem with Postgresql, from version 10 and beyond XOJO became useless needing to update the DB plugin against all odds because it simply could not authenticate too. New servers were using SCRAM for default and Xojo was using old protocols and client engines. When things got critical Xojo finally updated the plugin and fixed the problem. I believe the same is going on with MySQL now as using other tools everything is fine, only Xojo does not work (E.g. Python from the other server)

Do you think Xojo is using MarinaDB 10.8 or something older that does not have this problem?

I read that a lot has changed (security wise) on newer DB versions (MySQL, MariaDB, PostgreSQLā€¦)

Youā€™d have to ask Xojo, but that doesnā€™t mean explain it not working from just one machine.

At one point MySQL swapped password hash systems and you had to use the oldpassword() function to get connections from older versions of PHP. Could it be the same problem with Xojo?

OldPassword() is for ancient pre 4.1.1, so not a problem here.

Without applying any tricks he gets in the server1 from server2 using Python. So Iā€™m 99% percent inclined to say that just using a v8 client could fix the issue (and other issues). Anyway, all new servers are v8 for years now, and not being updated yet is just suicidal. Updated servers uses TLS1.3, Xojo (and its current 5.7 client) canā€™t handle it. I guess the problem is related to Xojo client not being able to handle cached sha2 authentication, the current default.

https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html

https://forums.mysql.com/read.php?39,694133,695587

1 Like

Nope, as Rick said , all works and it does how it should be on python on exact same conditions, so ports or settings are not an issue here, the issue so far XOJO as it works on GO , it works on Python , it works on PHP, the only thing as maybe Rick said could be old plugin or some misunderstandings on authentication part between XOJO app and server on Linux side as same code works in same conditions from MacOS .

I quit loosing time with XOJO and focus on more productive tools , i guess and hope that XOJO will fix essential things fast and avoid wasting money for expensive plugins to do something that XOJO supposed to do in its functionality. We are in 2023, not in 2000 so servers have evolved, code and functionality has to be brought up to date before announcing new features as we all use on the current work latest OSā€™s and few are using vintage computers, Just my 2 cents.

Thanks for sharing this. I always thought Xojo is a suitable tool for database server access. May Xojo should look into it.

It is, nobody said it is not, just that code was little bit left behind and in order to achieve your goal you might need to pay $$$ for plugins as DB plugins are outdated, at least for MySQL, but i guess they are working on it . Now, depends what Database Server means to you, as in many case you might really have to depend on a paid plugin as they only support MySQL, old versions of it at least, Postgresql and sqlite , in most of the cases sqlite is more than enough for storing data, when you work on a shared environment then yes, you need something more complex .

1 Like

I guess after more than 6 months i still cannot use mariadb server on linux using the latest xojo, that is super sad and frustrating, and i see the mysql part keeps on being shifted on later versions, i guess XOJO cannot be used in real apps, itā€™s more like prototyping or simple apps that does not require a lot of security and to much complicated things.