Database errors

From MythTV Official Wiki
Revision as of 14:28, 6 February 2014 by Stevegoodey (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The MythTV system is built upon a MySQL database. If this database is corrupted then many things may go wrong. -- so backup the database often.

For now this is just a summary of things that may happen when single tables are corrupted/deleted. If you suspect a database error then you should look out for MySQL error messages like "Cannot open file table.MYI" in the logs of MythTV.

If a table gets corrupted then usually you have to drop (delete) it and then create it anew. You should have basic knowledge of SQL to do this. The creation code for all tables is located in the mythtv source folder in the file libs/libmythtv/dbcheck.cpp .

See Mysql for some pointers on fixing common problems with the database.

recordedseek table (up to 0.19)

MythTV here stores seek marks for recorded shows and special marks for the cutlist and commercial flagging. This table can grow quite large.

Corruption of this table leads to problems when seeking in recordings or when editing recordings:

  • fast forward/rewind works only erratically or very slowly,
  • editing does not work or is excruciatingly slow.

Some of these errors can be remedied by regenerating the seek table for all or a specific recording using mythcommflag --rebuild.

You may also have run out of room in /var, check this using the df command. If you need to make /var bigger, how you do this depends on the type of filesystem you are using (reiserfs. ext2, jfs, xfs etc). You will need to look this up on the net.

  1. Log in or open up a terminal session as root superuser (or use su - )
  2. Stop mythbackend from running (on Ubuntu /etc/init.d/mythbackend stop)
  3. Change user to mythtv su - mythtv
  4. Run mysqlcheck -r -umythtv -pmythtv mythconverg (change the -pmythtv to have your own password following -p)
  5. Check for any reported errors- if there are you may have to rebuild the table in question (write down which one it is)
  6. Once all tables are OK, restart mythbackend (on Ubuntu /etc/init.d/mythbackend start)
  7. Rebuild the time indexes in all programs, run mythcommflag --rebuild --all (note that this can take a long time)

--indulis 01:09, 25 January 2007 (UTC)IndulisBernsteins