Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2017-05-08 20:48:56

ピヨピヨbird
メンバー
登録日: 2015-04-05
投稿: 78

データベーステーブルの修復方法 MySQL server has gone away , Lost connection ...

データベーステーブルの修復方法

・ 突然真っ白になった
・ Lost connection to MySQL server during query
・ MySQL server has gone away
とか表示されていると テーブルインデックス壊れている可能性がある

関連スレッド:http://japan.nucleuscms.org/forum/viewt … 248#p31248
Mysql公式 参考サイト: https://dev.mysql.com/doc/refman/5.6/ja … ables.html

phpMyAdminがある場合は、phpMyAdminで修復を試みる
(1) データベースをクリックし、テーブル一覧を表示する
(2) テーブル
「すべてチェックする」をクリックする
(3) チェックしたものを: 「テーブルを修復する」を選択する

初期テーブルだけを修復したい場合は
phpMyAdminの「SQL」をクリックし
以下の内容をコピーして、貼り付けをして、「実行」をクリックする

REPAIR TABLE `nucleus_actionlog`, `nucleus_activation`, `nucleus_ban`,
 `nucleus_blog`, `nucleus_category`, `nucleus_comment`, `nucleus_config`,
 `nucleus_item`, `nucleus_karma`, `nucleus_member`, `nucleus_plugin`,
 `nucleus_plugin_event`, `nucleus_plugin_option`, `nucleus_plugin_option_desc`,
 `nucleus_plug_securityenforcer`, `nucleus_skin`, `nucleus_skin_desc`,
 `nucleus_team`, `nucleus_template`, `nucleus_template_desc`, `nucleus_tickets`

v3.80からは、
管理画面に修復機能があるので
nucleus/index.php?action=optimizeoverview
にたどり着ければ、Nucleusからチェックできます


PHPで ごりごり がりがり 修復をやりたいひとは、

$items = array();
$res = sql_query("show tables like '". sql_table('') . "%'");
while($row = sql_fetch_row($res))
    $items[] = $row[0];
if (count($items)>0)
{
  $query = "REPAIR TABLE `". implode('` , `', $items) . "`";
//  echo "<div>". htmlspecialchars($query) ."</div>";
  $res = sql_query($query);
  while($row = sql_fetch_row($res)) 
    { ; }
}

オフライン

Board footer