Amigos

Error en la Base de Datos - Por favor intenta nuevamente. Si esta pantalla aparece nuevamente, notifica del error a un administrador

Publicado el 04/06/2013 a las 05:47 pm

Hoy un amigo que tiene un foro SMF experimentó este problema de la noche a la mañana.Investigando un poco, el error ya es algo común entre muchos usuarios. En esta sección veremos algunos detalles que nos pueden ayudar a identificar la solución para este error.

Las causas más conocidas, provienen en su mayoría desde la base de datos. Es decir, no tiene nada que ver con SMF a nivel de aplicación (archivos php). ¿Cómo puedo pasar esto? Bueno, veamos algunos escenarios:

  • Los datos son eliminados incorrectamente: Cuando se elimina un registro de la base de datos, otras tablas pueden contener aún referencias a este. Por lo tanto, tratar de accesar a dicha información da un error de resultado de datos, y lanza el error mencionado.
  • Tabla inexistente: Al igual que el escenario anterior, con la tabla pasa algo parecido. Una tabla aún tiene referencia a otra tabla que ya no existe.
  • Tablas no depuradas o corruptas: A veces los datos de una tabla están incompletos, o bien, inválidos. Una razón que puede provocar esto es porque la partición donde el servidor de MySQl está instaldo se ha llenado.

Al menos para el primero y último escenario, tenemos una manera de solucionar el problema desde una consola de linux de comandos (también sirve para windows). Usando la función mysqlcheck de Mysql. Primero, revisemos el archivo Settings.php de SMF, y veremos datos como estos:

  1. $db_type = 'mysql';
  2. $db_server = 'localhost';
  3. $db_name = 'mi_db';
  4. $db_user = 'usuario_db_smf';
  5. $db_passwd = 'mi_pass';

Usando la consola de comandos de nuestro servidor, o bien, mediante un cliente ssh hacemos:

  1. mysqlcheck -u usuario_db_smf -p --auto-repair --check --optimize --all-databases

Nótese que se está usando el nombre de usuario de la base de datos que administra la misma del foro SMF.

Ahora, les va a pedir que ingresen la contraseña:

  1. Enter password:

Una vez que la escriban correctamente, verán algo asi:

  1. mi_db.smf_admin_info_files                 OK
  2. mi_db.smf_ads                              Table is already up to date
  3. mi_db.smf_ads_settings                     Table is already up to date
  4. mi_db.smf_approval_queue                   OK
  5. mi_db.smf_attachments                      OK
  6. mi_db.smf_ban_groups                       Table is already up to date
  7. mi_db.smf_ban_items                        Table is already up to date
  8. mi_db.smf_board_permissions                Table is already up to date
  9. mi_db.smf_boards                           OK
  10. mi_db.smf_bookmarks                        Table is already up to date
  11. mi_db.smf_broken_links_list                Table is already up to date
  12. mi_db.smf_buddies                          Table is already up to date
  13. mi_db.smf_calendar                         Table is already up to date
  14. mi_db.smf_calendar_holidays                Table is already up to date
  15. mi_db.smf_categories                       Table is already up to date
  16. mi_db.smf_collapsed_categories             Table is already up to date
  17. mi_db.smf_custom_fields                    Table is already up to date
  18. mi_db.smf_group_moderators                 Table is already up to date
  19. mi_db.smf_log_actions                      OK
  20. mi_db.smf_log_activity                     OK
  21. mi_db.smf_log_banned                       Table is already up to date
  22. mi_db.smf_log_boards                       OK
  23. mi_db.smf_log_comments                     Table is already up to date
  24. mi_db.smf_log_digest                       OK
  25. mi_db.smf_log_errors
  26. error    : Found key at page 1562624 that points to record outside datafile
  27. status   : Operation failed
  28. mi_db.smf_log_floodcontrol                 OK
  29. mi_db.smf_log_group_requests               Table is already up to date
  30. mi_db.smf_log_karma                        Table is already up to date
  31. mi_db.smf_log_mark_read                    OK
  32. mi_db.smf_log_member_notices               Table is already up to date
  33. mi_db.smf_log_notify                       OK
  34. mi_db.smf_log_online
  35. warning  : Number of rows changed from 5 to 4
  36. status   : OK
  37. mi_db.smf_log_packages                     Table is already up to date
  38. mi_db.smf_log_polls                        Table is already up to date
  39. mi_db.smf_log_reported                     Table is already up to date
  40. mi_db.smf_log_reported_comments            Table is already up to date
  41. mi_db.smf_log_scheduled_tasks              OK
  42. mi_db.smf_log_search_messages              Table is already up to date
  43. mi_db.smf_log_search_results               OK
  44. mi_db.smf_log_search_subjects              OK
  45. mi_db.smf_log_search_topics                Table is already up to date
  46. mi_db.smf_log_spider_hits                  Table is already up to date
  47. mi_db.smf_log_spider_stats                 OK
  48. mi_db.smf_log_subscribed                   Table is already up to date
  49. mi_db.smf_log_topics                       OK
  50. mi_db.smf_mail_queue                       Table is already up to date
  51. mi_db.smf_membergroups                     Table is already up to date
  52. mi_db.smf_members                          OK
  53. mi_db.smf_message_icons                    Table is already up to date
  54. mi_db.smf_messages                         OK
  55. mi_db.smf_moderators                       Table is already up to date
  56. mi_db.smf_openid_assoc                     Table is already up to date
  57. mi_db.smf_package_servers                  Table is already up to date
  58. mi_db.smf_permission_profiles              Table is already up to date
  59. mi_db.smf_permissions                      OK
  60. mi_db.smf_personal_messages                OK
  61. mi_db.smf_picture_comments                 Table is already up to date
  62. mi_db.smf_pm_recipients                    OK
  63. mi_db.smf_pm_rules                         Table is already up to date
  64. mi_db.smf_poll_choices                     Table is already up to date
  65. mi_db.smf_polls                            Table is already up to date
  66. mi_db.smf_pretty_topic_urls                OK
  67. mi_db.smf_pretty_urls_cache                Table is already up to date
  68. mi_db.smf_profile_albums                   Table is already up to date
  69. mi_db.smf_profile_comments                 Table is already up to date
  70. mi_db.smf_profile_pictures                 Table is already up to date
  71. mi_db.smf_related_subjects                 OK
  72. mi_db.smf_related_topics                   OK
  73. mi_db.smf_scheduled_tasks                  OK
  74. mi_db.smf_sessions                         OK
  75. mi_db.smf_settings                         OK
  76. mi_db.smf_smileys                          Table is already up to date
  77. mi_db.smf_spiders                          Table is already up to date
  78. mi_db.smf_ssrs_good_post                   OK
  79. mi_db.smf_ssrs_likes                       Table is already up to date
  80. mi_db.smf_subscriptions                    Table is already up to date
  81. mi_db.smf_themes                           OK
  82. mi_db.smf_topics                           OK
  83.  
  84. Repairing tables
  85. mi_db.smf_log_errors
  86. info     : Wrong bytesec:   0-  0-  0 at 48825404; Skipped

En cada tabla que vean el mensaje de OK significa que la tabla fue reparada ya que existía alguna anomalía. Por otro lado, Table is already up to date significa que la tabla se ha encontrado en óptimas condiciones.