A temporary work-around for this issue for all of you who run MySQL 5.0 servers is to turn off strict mode by editing your my.ini file and then restarting your database service.
The problem here with the inventory is that the emulator is trying to insert a non "integer" value into the dbo.inventory.color table which is a INT data type. Under previous versions of MySQL you could get away with this (inserting a space charater instead of a integer value, for example) but with MySQL 5, the server will enforce data integrity when strict mode is turned on.
The real solution for this problem is to ensure the query in the following code block does not try to save anything but a integer value for the color column.
Code:
// Update/Insert item
uint32 len_query = MakeAnyLenString(&query, "REPLACE INTO inventory (charid,slotid,itemid,charges,instnodrop,color,augslot1,augslot2,augslot3,augslot4,augslot5) VALUES(%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i)",
char_id, slot_id, inst->GetItem()->ID, charges, inst->IsInstNoDrop() ? 1:0,inst->GetColor(),augslot[0],augslot[1],augslot[2],augslot[3],augslot[4],augslot[5] );
NOTE: the code fragment above is from shareddb.cpp.
Good night and good luck...