View Single Post
  #2  
Old 03-04-2010, 05:15 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

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.

Last edited by Derision; 03-04-2010 at 05:57 PM..
Reply With Quote