I've seen so many people fall into this trap, and get really frustrated
I think I know what the problem is, cause we had it a couple of times (talk about making you sweat when your sever crashes when anyone tries to zone in...)
Anyways, the merchantlist table allows you to put "bad rows" in. Meaning you can enter a row with the merchantid of zero. Well, guess what, everyone's merchantid is zero. This causes zone to crash when trying to load merchant lists (not exactly sure why...)
So, when anyone tries to log in, poof, zone crash...
Simple fix, find the bad row(s) in merchantlist, and delete it(them)
Long term fix, change merchantlist table to not accept 0 (we put an autoincrement on it, at least it avoids the crashes... your new merchant probably won't work right, but your zone will load.. LOL) The function that loads the merchants might handle this a bit more gracefully too, maybe some > 0 in the sql or something