Did you change anything ? Anything at all ?
I've never heard of PPs becoming corrupt like that, other than bad source code changes, or manually editing the character_ table in the DB, but that normally ends up with a zero length PP, not one that is one or two bytes out.
Assuming you have no backup of your database, back it up now:
Code:
mysqldump -u root -p <yourdbname> > mybackup.sql
Now, there is a chance you may be able to recover, if your have good entries in your character_backup table.
Execute this query:
Code:
select id, name, length(profile) from character_backup;
If you have entries with a length(profile) of 19568, then they are not corrupt, e.g.
Code:
mysql> select id, name, length(profile), ts from character_backup where name like 'Derision';
+------+----------+-----------------+---------------------+
| id | name | length(profile) | ts |
+------+----------+-----------------+---------------------+
| 209 | Derision | 19568 | 2008-05-23 20:59:46 |
| 210 | Derision | 19568 | 2008-05-23 21:05:06 |
| 227 | Derision | 19568 | 2008-05-29 18:37:47 |
| 226 | Derision | 19568 | 2008-05-29 18:32:46 |
| 334 | Derision | 19568 | 2008-06-29 16:41:51 |
| 335 | Derision | 19568 | 2008-06-29 18:32:23 |
| 4223 | Derision | 19568 | 2010-02-03 21:26:36 |
| 4221 | Derision | 19568 | 2010-02-03 20:18:43 |
+------+----------+-----------------+---------------------+
8 rows in set (0.00 sec)
Login and create a new GM character. Once in game, for each corrupted character, issue the command:
Code:
#charbackup restore <CharName> <Backup ID>
Where <Backup ID> is the latest ID number from the query I listed above, where the length(profile) is the correct size of 19568.
I have never used the #charbackup restore command before, but I just deliberately NULLed out the profile of a character and tried to restore it in this manner, and it seemed to work, however whatever caused you character_ entries to become corrupted, may well have also corrupted the character_backup table as well, in which case you are out of luck if you have no database backup prior to the problem occurring.