From 582e29106b531d4a2db6dd57b6a0d5f539fc3fe4 Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 9 Jul 2026 06:35:31 +0200 Subject: [PATCH] Fix new-account creation failing under MariaDB strict mode accounts.lastlogin/logtime had no defaults and were NOT NULL, but the auto-create-account INSERT never set them, so new accounts failed under MariaDB strict mode (silently accepted under the old MySQL 5.0 target). Insert explicit empty/zero values and give lastlogin a default; also widen it to varchar(32) to match the runtime.sql fix already applied to the starttime column. Co-Authored-By: Claude Sonnet 5 --- Src/Login Server/loginpackets.cpp | 2 +- database sql files/KTRose_DB.sql | 2 +- database sql files/accounts.sql | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Src/Login Server/loginpackets.cpp b/Src/Login Server/loginpackets.cpp index 1dd7bf9..4bafc62 100644 --- a/Src/Login Server/loginpackets.cpp +++ b/Src/Login Server/loginpackets.cpp @@ -131,7 +131,7 @@ bool CLoginServer::pakUserLogin( CLoginClient* thisclient, CPacket* P ) DB->QFree( ); if(Config.CreateLoginAccount) { - if(!DB->QExecute("INSERT into accounts (username,password,accesslevel) values ('%s','%s',100)",thisclient->username.c_str(),thisclient->password.c_str())) + if(!DB->QExecute("INSERT into accounts (username,password,accesslevel,lastlogin,logtime) values ('%s','%s',100,'',0)",thisclient->username.c_str(),thisclient->password.c_str())) return true; Log( MSG_INFO, "New Account created '%s'", thisclient->username.c_str() ); } diff --git a/database sql files/KTRose_DB.sql b/database sql files/KTRose_DB.sql index f906300..0bb5297 100644 --- a/database sql files/KTRose_DB.sql +++ b/database sql files/KTRose_DB.sql @@ -41,7 +41,7 @@ CREATE TABLE IF NOT EXISTS `accounts` ( `isSiteLogged` tinyint(1) default '0', `ktpoints` int(11) NOT NULL default '0', `newpoints` int(11) NOT NULL default '0', - `lastlogin` varchar(20) NOT NULL, + `lastlogin` varchar(32) NOT NULL default '', `logtime` int(11) NOT NULL, `totlogtime` int(11) NOT NULL default '0', PRIMARY KEY (`id`) diff --git a/database sql files/accounts.sql b/database sql files/accounts.sql index 306a894..710dc3e 100644 --- a/database sql files/accounts.sql +++ b/database sql files/accounts.sql @@ -41,7 +41,7 @@ CREATE TABLE IF NOT EXISTS `accounts` ( `isSiteLogged` tinyint(1) default '0', `ktpoints` int(11) NOT NULL default '0', `newpoints` int(11) NOT NULL default '0', - `lastlogin` varchar(20) NOT NULL, + `lastlogin` varchar(32) NOT NULL default '', `logtime` int(11) NOT NULL, `totlogtime` int(11) NOT NULL default '0', PRIMARY KEY (`id`)