Feature Request: MySQL support
Hi AK,
I have been asked to run a second server (CTF), so my first thought was how to share the DB so I do not have to maintain two sets of player credentials for each server.
The obvious solution would be MySQL.
I know keeping it light weight is a priority, but I though I would throw the idea out there anyway to see what your thoughts are on it.
thanks --G
Hello ge0rdie,
I was also experimenting with MySQL support in the past. However, the format of parameterized queries is completely different and therefore not compatible. I was checking today some Python string formatting options, so maybe it would be possible if all select, updates and inserts commands would be replaced. I would need to test this first with a MySQL server.
BUT: It seems that you have a basic misunderstanding of Quake. Your GUID (global unique ID) is created of your qkey, the server IP and port. So you have on any server a total different guid. Even on the same server but different port (e.g. UrT server 1 on your server port 29760, UrT server 2 on same server port 29761) you have a different ID and the bot will not recognize you.
In your case the situation would get even worse, since the bot will have your known admins for server 1, but will see the same names with a different guid on server two and since these users are unknown, they are guests. You would even have a problem to get admin rights, since there is already a head admin in the database (for server 1) and everyone on server 2 will be guests.
This was the main reason why I have chosen file based databases. Each server has a unique file and no relation to anything else.
It is also not possible to "migrate" an existing server to a new port or IP address. You would need to replace the old guid with the new ones by hand...
This behaviour is part of Quake and nothing I can control. I assume it is a security feature, since no server admin can steal your guid and do nasty things, because on any other server this guid will be different.
Hi AK,
Thanks for the reply.
I will have to just make do :-)
--G
On Fri, Aug 7, 2020 at 8:25 AM Alexander Kress [email protected] wrote:
Hello ge0rdie,
I was also experimenting with MySQL support in the past. However, the format of parameterized queries is completely different and therefore not compatible. I was checking today some Python string formatting options, so maybe it would be possible if all select, updates and inserts commands would be replaced. I would need to test this first with a MySQL server.
BUT: It seems that you have a basic misunderstanding of Quake. Your GUID (global unique ID) is created of your qkey, the server IP and port. So you have on any server a total different guid. Even on the same server but different port (e.g. UrT server 1 on your server port 29760, UrT server 2 on same server port 29761) you have a different ID and the bot will not recognize you.
In your case the situation would get even worse, since the bot will have your known admins for server 1, but will see the same names with a different guid on server two and since these users are unknown, they are guests. You would even have a problem to get admin rights, since there is already a head admin in the database (for server 1) and everyone on server 2 will be guests.
This was the main reason why I have chosen file based databases. Each server has a unique file and no relation to anything else.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SpunkyBot/spunkybot/issues/90#issuecomment-670221417, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJV5CEWM4ZLZZSDVOPOHUW3R7MUWHANCNFSM4PWIH36A .
So I have a first version running with MySQL support. Currently not all queries have been changed, but statistics, admin role etc is already stored in the MySQL database and also still working in SQLite.