如何修复崩溃的WordPress数据库表?

译文
数据库 MySQL
崩溃的原因可能不一样,但通常当mysqld或mysqld运行在其中的主机在数据库更新过程中被强行关闭时,就会引发数据库崩溃。在教程的其余部分,我将介绍如何修复崩溃的WordPress MySQL数据库表。

【51CTO精选译文】WordPress数据库可能会在各种情形下遇到故障和损坏。它遇到的常见问题之一就是“数据库崩溃”。如果出现这种情况,你可以在WordPress错误日志中找到下列错误信息:

 

WordPress database error Table './my_home/wp_posts' is marked as crashed and last (automatic?) repair failed for query SELECT post_date_gmt FROM wp_posts WHERE post_status = 'publish' AND post_type IN ('post', 'page', 'attachment') ORDER BY post_date_gmt DESC LIMIT 1 made by require('wp-blog-header.php'), wp, WP->main, WP->send_headers, get_lastpostmodified, get_lastpostdate, _get_last_post_time

这类数据库表崩溃的症状多种多样。你的WordPress博客可能出现不一样的异常,这取决于崩溃的是哪个表。如果崩溃的表是里面含有一系列博文的“wp_posts”表,你就看不到博客里面的任何帖子。Xmodulo网站就在上个周末遇到了这种数据库崩溃:

 

Xmodulo的WordPress博客眼下由MySQL运行,所以我在本教程中将着重介绍MySQL。

MySQL表为何会崩溃?

崩溃的原因可能不一样,但通常当mysqld或mysqld运行在其中的主机在数据库更新过程中被强行关闭时,就会引发数据库崩溃。在教程的其余部分,我将介绍如何修复崩溃的WordPress MySQL数据库表。

***种方法

如果你使用共享的主机托管服务,通常可以访问Cpanel,这让你可以通过Cpanel Web界面修复数据库。

登录进入到Cpanel,点击“Databases”(数据库)部分下面的“MySQL Databases”(MySQL数据库)。

 

在MySQL Databases页面上,你会在“Modify Databases”(修改数据库)部分下面找到“Repair DB”(修复数据库)。

 

选择含有崩溃表的那个数据库,点击“Repair DB”(修复数据库)按钮。如果修复成功,你会看到每个表的状态显示为“OK”。

 

  1. my_database.wp_oiopub_tracker_visits OK  
  2. my_database.wp_options OK  
  3. my_database.wp_postmeta OK  
  4. my_database.wp_posts  
  5. error : Keyblock size at page 13001728 is not correct. Block length: 532 key length: 2  
  6. Error : Incorrect key file for table './my_database/wp_posts.MYI'; try to repair it  
  7. error : Corrupt  
  8. ---------  
  9. After repair:  
  10. ----  
  11. my_database.wp_oiopub_tracker_visits OK  
  12. my_database.wp_options OK  
  13. my_database.wp_postmeta OK  
  14. my_database.wp_posts OK  
  15. my_database.wp_sharebar OK  
  16. my_database.wp_term_relationships OK 

 

第二种方法

如果你在MySQL服务器运行在上面的主机(比如VPS)上享用根目录访问权,就可以试一试命令行接口,修复崩溃的数据库表。

就MyISAM类型的数据库而言,你可以使用名为myisamchk的命令行实用工具,修复崩溃的表。该实用工具随MySQL服务器一同安装。

首先,停止MySQL服务器。

  1. $ sudo service mysql stop (Debian/Ubuntu)  
  2. $ sudo service mysqld stop (CentOS/RHEL)  
  3. $ sudo systemctl stop mysqld.service (Fedora) 

然后使用这个命令修复某一个表。

  1. $ cd /var/lib/  
  2. $ sudo myisamchk -r -v -f mysql/<database_name>/<table_name> 

***,再次启动MySQL服务器。

你平时有没有遇到过数据库崩溃问题,或者是WordPress数据库出现的其他任何问题?你是否定期备份自己的WordPress数据库表?欢迎告诉我们你用什么方法来解决这个问题、维护数据库。
 

英文:http://xmodulo.com/2014/06/repair-crashed-wordpress-database-table.html

责任编辑:林师授 来源: 51CTO
相关推荐

2009-02-02 13:16:23

修复数据表MySQL

2011-03-15 09:55:07

SQL Server2数据库崩溃还原数据库

2022-06-06 08:21:13

MySQL数据库命令

2011-03-15 09:52:40

SQL Server2数据库恢复系统

2018-03-05 19:20:49

LinuxWordPressHTTP

2011-05-18 13:16:21

MySQL数据库锁定

2011-04-12 09:43:17

Sybase数据库修复技巧

2023-09-14 23:05:57

​ ​MySQL数据库

2010-07-21 17:31:19

SQL Server

2010-10-13 11:54:00

MySQL数据库表

2009-06-11 13:16:57

JBPM数据库

2017-05-03 13:50:38

2011-03-24 16:23:18

sql2005数据库

2009-02-02 16:50:34

数据库表的锁定MySQL

2019-10-21 08:08:34

MySQL数据库主键

2009-07-06 23:23:15

Sybase数据库修复

2018-03-06 09:30:58

2010-05-24 14:38:41

MySQL数据库

2010-06-07 13:53:04

MySQL数据库表

2011-07-19 11:12:36

PHPMySQL数据库
点赞
收藏

51CTO技术栈公众号